狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【C#】使用CEFSharp獲取動態網頁源碼

admin
2025年6月26日 8:28 本文熱度 45

CEF 全稱是 Chromium Embedded Framework(Chromium嵌入式框架),是個基于Google Chromium項目的開源Web browser控件,支持Windows, Linux, Mac平臺。CEFSharpCEF的C#移植版本。

訪問以下鏈接可以獲取CEF的詳細介紹

https://bitbucket.org/chromiumembedded/cef/wiki/Home


CEFSharp是開源的

地址:https://github.com/cefsharp/CefSharp

CEFSharp支持WinformWPF這里我以WPF來進行演示。


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

?


2、將解決方案平臺更改為x64


3、在Xaml中完成界面設計

需要先引入命名空間前綴

xmlns:cefsharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"

1 <Window x:Class="使用CEFSharp獲取動態網頁源碼.MainWindow" 
2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
4         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
5         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
6         xmlns:local="clr-namespace:使用CEFSharp獲取動態網頁源碼" 
7         xmlns:cefsharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" 
8         mc:Ignorable="d" 
9         Title="MainWindow" Height="450" Width="800">
10     <Grid>
11         <Grid.RowDefinitions>
12             <RowDefinition Height="35"/>
13             <RowDefinition/>
14         </Grid.RowDefinitions>
15 
16         <Grid>
17             <Label Content="請輸入網址" VerticalAlignment="Center" HorizontalAlignment="Left"></Label>
18             <TextBox  VerticalAlignment="Center" Margin="80,0,120,0"></TextBox>
19             <Button Content="訪問" HorizontalAlignment="Right" Width="100" VerticalAlignment="Center"/>
20         </Grid>
21 
22         <Grid Grid.Row="1">
23             <cefsharp:ChromiumWebBrowser Name="chrome"></cefsharp:ChromiumWebBrowser>
24         </Grid>
25     </Grid>
26 </Window>


4、使用cef獲取網頁源碼

只需要設置ChromiumWebBrowser.Address屬性就可以打開網站。

1 chrome.Address = this.tbox_url.Text;

 

5、處理獲取到的網頁源碼

ChromiumWebBrowser.FrameLoadEnd事件實現里可以獲取到網頁的動態源碼。

這里需要注意的是,當你打開一個動態頁面,這個事件可能 會觸發多次,

比如你打開weibo.com,這個事件就會觸發多次。

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


使用CEF無法確定一個網站是否已經完全加載完成,我們只能在它每一次加載完成時,處理它的頁面源碼。

如果需要主動等待網站加載完成,可以試試使用Selenium 

https://www.cnblogs.com/zhaotianff/p/11330810.html


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

獲取到源碼以后可以使用HtmlAgilityPackAngleSharp等解析庫來解析HTML,也可以使CEF執行js實現同樣的功能


調用ChromiumWebBrowser.EvaluateScriptAsync函數就可以執行js,函數返回值可以獲取到js執行的結果。


示例代碼

https://files-cdn.cnblogs.com/files/zhaotianff/CEFSharpDemo.zip


閱讀原文:原文鏈接


該文章在 2025/6/26 21:52:23 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved