LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【C#】使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼

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

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

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

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


CEFSharp是開源的

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

CEFSharp支持WinformWPF,這里我以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"

1 <Window x:Class="使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼.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獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼" 
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="請(qǐng)輸入網(wǎng)址" VerticalAlignment="Center" HorizontalAlignment="Left"></Label>
18             <TextBox  VerticalAlignment="Center" Margin="80,0,120,0"></TextBox>
19             <Button Content="訪問(wèn)" 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獲取網(wǎng)頁(yè)源碼

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

1 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ā)多次。

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


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

如果需要主動(dòng)等待網(wǎng)站加載完成,可以試試使用Selenium 

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


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

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


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


示例代碼

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


閱讀原文:原文鏈接


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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲一级一在线观看 | 伊人久久福利中文字幕 | 亚洲码欧美码一区二区 | 亚洲国产午夜福利在线视频 | 综合国产精品私拍国产在线 | 亚洲专区动漫专区欧美专区日韩专区 |