欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁源碼的演示步驟

 更新時(shí)間:2024年08月14日 10:02:02   作者:△曉風(fēng)殘?jiān)漏e  
CEFSharp是一個(gè)用C#編寫的庫,它是Chromium Embedded Framework (CEF) 的.NET封裝和擴(kuò)展,CEF允許開發(fā)者在自己的應(yīng)用程序中嵌入一個(gè)功能強(qiáng)大的HTML渲染引擎,從而能夠呈現(xiàn)網(wǎng)頁內(nèi)容,本文介紹了C#如何使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁源碼,需要的朋友可以參考下

CEF 全稱是Chromium Embedded Framework(Chromium嵌入式框架),是個(gè)基于Google Chromium項(xiàng)目的開源Web browser控件,支持Windows, Linux, Mac平臺(tái)。CEFSharp就是CEF的C#移植版本。

訪問以下鏈接可以獲取CEF的詳細(xì)介紹

chromiumembedded / cef / wiki / Home — Bitbucket

CEFSharp是開源的,地址https://github.com/cefsharp/CefSharp,CEFSharp支持Winform和WPF,這里我以WPF來進(jìn)行演示。

1、新建WPF工程,Nuget引入CEFSharp

2、將解決方案平臺(tái)更改為x64

3、在Xaml中完成界面設(shè)計(jì)

需要先引入命名空間前綴

xmlns:cefsharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
 <Window x:Class="使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁源碼.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁源碼"
         xmlns:cefsharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
         mc:Ignorable="d"
         Title="MainWindow" Height="450" Width="800">
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="35"/>
             <RowDefinition/>
         </Grid.RowDefinitions>
 
         <Grid>
             <Label Content="請(qǐng)輸入網(wǎng)址" VerticalAlignment="Center" HorizontalAlignment="Left"></Label>
             <TextBox  VerticalAlignment="Center" Margin="80,0,120,0"></TextBox>
             <Button Content="訪問" HorizontalAlignment="Right" Width="100" VerticalAlignment="Center"/>
         </Grid>
 
         <Grid Grid.Row="1">
             <cefsharp:ChromiumWebBrowser Name="chrome"></cefsharp:ChromiumWebBrowser>
         </Grid>
     </Grid>
 </Window>

4、使用cef獲取網(wǎng)頁源碼

只需要設(shè)置ChromiumWebBrowser.Address屬性就可以打開網(wǎng)站。

chrome.Address = this.tbox_url.Text;

5、處理獲取到的網(wǎng)頁源碼

ChromiumWebBrowser.FrameLoadEnd事件實(shí)現(xiàn)里可以獲取到網(wǎng)頁的動(dòng)態(tài)源碼。這里需要注意的是,當(dāng)你打開一個(gè)動(dòng)態(tài)頁面,這個(gè)事件可能 會(huì)觸發(fā)多次,比如你打開weibo.com,這個(gè)事件就會(huì)觸發(fā)多次。

private async void Chrome_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
         {
             string source = await chrome.GetSourceAsync();
         }

使用CEF無法確定一個(gè)網(wǎng)站是否已經(jīng)完全加載完成,我們只能在它每一次加載完成時(shí),處理它的頁面源碼。

比如打開weibo.com時(shí),會(huì)獲取到多次頁面源碼,結(jié)果如下(這里只貼出前面兩次的結(jié)果):

獲取到源碼以后可以使用HtmlAgilityPack、AngleSharp等解析庫來解析HTML,也可以使用CEF執(zhí)行js實(shí)現(xiàn)同樣的功能

調(diào)用ChromiumWebBrowser.EvaluateScriptAsync函數(shù)就可以執(zhí)行js,函數(shù)返回值可以獲取到j(luò)s執(zhí)行的結(jié)果。

以上就是C#使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁源碼的演示步驟的詳細(xì)內(nèi)容,更多關(guān)于C# CEFSharp獲取網(wǎng)頁源碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論