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

C#使用CEFSharp獲取動態(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獲取動態(tài)網(wǎng)頁源碼,需要的朋友可以參考下

CEF 全稱是Chromium Embedded Framework(Chromium嵌入式框架),是個(gè)基于Google Chromium項(xiàng)目的開源Web browser控件,支持Windows, Linux, Mac平臺。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、將解決方案平臺更改為x64

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

需要先引入命名空間前綴

xmlns:cefsharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
 <Window x:Class="使用CEFSharp獲取動態(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獲取動態(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="請輸入網(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)頁的動態(tài)源碼。這里需要注意的是,當(dāng)你打開一個(gè)動態(tài)頁面,這個(gè)事件可能 會觸發(fā)多次,比如你打開weibo.com,這個(gè)事件就會觸發(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í),會獲取到多次頁面源碼,結(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獲取動態(tài)網(wǎng)頁源碼的演示步驟的詳細(xì)內(nèi)容,更多關(guān)于C# CEFSharp獲取網(wǎ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)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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案例詳解,本篇文章通過簡要的案例,講解了該項(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è)部分分離出來,以使它們更加醒目,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ū)別解析,對C#初學(xué)者來說很有學(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#的繼承中嘗嘗會用到相關(guān)的修飾詞:override和new。這兩個(gè)修飾符都可以在新的子類中,重寫同名的父類方法。下面通過本文給大家介紹C#中overrid和new修飾符的區(qū)別,感興趣的朋友一起看看吧
    2018-02-02

最新評論

砀山县| 黔东| 武鸣县| 昭觉县| 高密市| 循化| 台前县| 邳州市| 保山市| 常熟市| 巴塘县| 东乡| 云南省| 涿州市| 确山县| 乐山市| 呈贡县| 甘洛县| 惠水县| 蓬安县| 吴川市| 什邡市| 安龙县| 沅江市| 定远县| 林甸县| 静乐县| 温泉县| 罗江县| 盘山县| 龙井市| 溧水县| 措勤县| 西充县| 嘉定区| 新竹县| 化州市| 拉萨市| 南皮县| 绥宁县| 剑阁县|