深圳全飞鸿
标题:
CefSharp截取网页内容
[打印本页]
作者:
syant
时间:
2024-8-25 09:53
标题:
CefSharp截取网页内容
CefSharp是一个开源的.NET库,用于嵌入Chromium浏览器到.NET应用程序中。要截取事件,您可以使用CefSharp的事件处理机制。
以下是一个简单的示例,展示了如何使用CefSharp截取网页加载完成事件
using CefSharp;
using CefSharp.WinForms;
using System;
using System.Windows.Forms;
namespace CefSharpExample
{
public partial class MainForm : Form
{
private ChromiumWebBrowser browser;
public MainForm()
{
InitializeComponent();
InitializeChromium();
}
private void InitializeChromium()
{
browser = new ChromiumWebBrowser("https://www.example.com");
browser.Dock = DockStyle.Fill;
this.Controls.Add(browser);
// 注册网页加载完成事件
browser.FrameLoadEnd += Browser_FrameLoadEnd;
}
private void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
if (!e.Frame.IsMain)
return;
if (e.HttpStatusCode == 200)
{
// 在这里处理网页加载完成事件
Console.WriteLine("网页加载完成");
}
else
{
// 处理加载失败的情况
Console.WriteLine($"网页加载失败,状态码:{e.HttpStatusCode}");
}
}
}
}
复制代码
作者:
syant
时间:
2024-8-25 09:55
读取网页源代码
在页面加载完成后处理, 依赖最低环境 4.5.2
async void browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
Log.WriteLog("browser_FrameLoadEnd:" + e.Url);
var result = await browser.GetSourceAsync();
}
复制代码
如果想在4.0下环境操作需要使用。
var task = browser.GetSourceAsync();
task.Wait();
string content = task.Result;
复制代码
作者:
syant
时间:
2024-8-25 09:55
我已用过的代码:
private void chromiumWebBrowser1_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
{
var task02 = chromiumWebBrowser1.GetBrowser().MainFrame.GetSourceAsync();
task02.ContinueWith(t =>
{
if (!t.IsFaulted)
{
string resultStr = t.Result;
int iPos = resultStr.IndexOf(@"<td>tcp://");
if (iPos > 0)
{
String ipstr = resultStr.Substring(iPos + 10, 100);
iPos = ipstr.IndexOf(@"</td>");
if (iPos > 0)
{
ipstr = ipstr.Substring(0, iPos);
}
WriteLog(ipstr);
Application.Exit();
}
}
});
}
复制代码
作者:
syant
时间:
2024-8-25 14:35
兼容性
即使是在Windows上,WebBrowser默认使用的也是IE7引擎。一个不太彻底的解决方案,是通过修改html的meta信息强制指定兼容性IE引擎:
<meta http-equiv="X-UA-Compatible" content="IE=10" />
IE=edge也是一个合理的参数。
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2