最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

chromiumembedded / cef / wiki / Home — Bitbucket

CEFSharp是開源的,地址https://github.com/cefsharp/CefSharp,CEFSharp支持Winform和WPF,這里我以WPF來(lái)進(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)頁(yè)源碼.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)頁(yè)源碼"
         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="訪問(wèn)" HorizontalAlignment="Right" Width="100" VerticalAlignment="Center"/>
         </Grid>
 
         <Grid Grid.Row="1">
             <cefsharp:ChromiumWebBrowser Name="chrome"></cefsharp:ChromiumWebBrowser>
         </Grid>
     </Grid>
 </Window>

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

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

chrome.Address = this.tbox_url.Text;

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

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

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

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

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

獲取到源碼以后可以使用HtmlAgilityPack、AngleSharp等解析庫(kù)來(lái)解析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)頁(yè)源碼的演示步驟的詳細(xì)內(nèi)容,更多關(guān)于C# CEFSharp獲取網(wǎng)頁(yè)源碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用C#9中records作為強(qiáng)類型ID的實(shí)例教程

    使用C#9中records作為強(qiáng)類型ID的實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于使用C#9中records作為強(qiáng)類型ID的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C# 實(shí)現(xiàn)截圖軟件功能實(shí)例代碼

    C# 實(shí)現(xiàn)截圖軟件功能實(shí)例代碼

    這篇文章主要介紹了C# 實(shí)現(xiàn)截圖軟件功能實(shí)例代碼,需要的朋友可以參考下
    2017-06-06
  • C# ManagementObjectSearcher操作window案例詳解

    C# ManagementObjectSearcher操作window案例詳解

    這篇文章主要介紹了C# ManagementObjectSearcher操作window案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C#組合模式實(shí)例詳解

    C#組合模式實(shí)例詳解

    這篇文章主要介紹了C#組合模式,實(shí)例分析了C#實(shí)現(xiàn)組合模式的原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#使用NPOI上傳excel

    C#使用NPOI上傳excel

    這篇文章主要為大家詳細(xì)介紹了C#使用NPOI上傳excel的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 在C#中分離餅圖的某個(gè)區(qū)域的操作指南

    在C#中分離餅圖的某個(gè)區(qū)域的操作指南

    在處理 Excel 餅圖時(shí),我們可能需要將餅圖的各個(gè)部分分離出來(lái),以使它們更加醒目,Spire.XLS 提供了 Series.DataFormat.Percent 屬性,使開發(fā)者能夠?qū)⒄麄€(gè)餅圖拉開,本文將介紹如何使用 Spire.XLS 在 C# 中設(shè)置餅圖各分片之間的分離寬度,需要的朋友可以參考下
    2025-12-12
  • C#事件用法實(shí)例淺析

    C#事件用法實(shí)例淺析

    這篇文章主要介紹了C#事件用法,以實(shí)例形式分析了C#中事件的定義、觸發(fā)及處理相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • WinForm中KeyDown,KeyPress和KeyUp的順序與區(qū)別解析

    WinForm中KeyDown,KeyPress和KeyUp的順序與區(qū)別解析

    這篇文章主要介紹了WinForm中KeyDown,KeyPress和KeyUp的順序與區(qū)別解析,對(duì)C#初學(xué)者來(lái)說(shuō)很有學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • c# 解碼 encodeURIComponent的具體使用

    c# 解碼 encodeURIComponent的具體使用

    本文介紹了在C#中解碼由encodeURIComponent編碼的URL的幾種方法,包括使用HttpUtility.UrlDecode和QueryHelpers.ParseQuery/QueryHelpers.AddQueryString,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-11-11
  • C#中overrid和new修飾符有什么不同

    C#中overrid和new修飾符有什么不同

    在C#的繼承中嘗嘗會(huì)用到相關(guān)的修飾詞:override和new。這兩個(gè)修飾符都可以在新的子類中,重寫同名的父類方法。下面通過(guò)本文給大家介紹C#中overrid和new修飾符的區(qū)別,感興趣的朋友一起看看吧
    2018-02-02

最新評(píng)論

永和县| 澄江县| 玉林市| 拉萨市| 南城县| 汉寿县| 浦江县| 永年县| 巴里| 台中县| 尼玛县| 祁东县| 蒲城县| 泌阳县| 江阴市| 遵化市| 昭通市| 乐清市| 外汇| 平谷区| 古蔺县| 延寿县| 太白县| 丰宁| 吉首市| 巴林右旗| 运城市| 揭东县| 亳州市| 拜城县| 青田县| 渝中区| 乌审旗| 信阳市| 盐源县| 朔州市| 上高县| 商南县| 竹溪县| 凯里市| 巴楚县|