1.读取网页源代码在页面加载完成后处理, 依赖最低环境 4.5.2async void browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
Log.WriteLog("browser_FrameLoadEnd:" + e.Url); var result = await browser.GetSour
CefSharp简单来说就是⼀款.Net编写的浏览器包,⽅便你在Winform和WPF
中内嵌的Chrome浏览器组件。
这块安装使⽤没有想象的那么
简单,⽐较坑爹,各种修改配置,按照的A配置⽅案没有搞定,按照B配置⽅案勉强部署成功
(VS2013/VS2017)!对于外⽂不好的我,看着英⽂⽂档脑壳疼。⽼外给的,但是感觉没有啥卵⽤。下⾯就介绍⼀下B⽅案安装部署的
过程吧,A⽅案我就不讲了,想看的请去上⾯的官⽹查看。
CefSharp是一个基于Chromium Embedded Framework的.NET封装库,它允许开发者在.NET应用程序中嵌入HTML5内容。如果你想要劫持CefSharp来实现一些自定义功能,可以尝试以下步骤:
1. 在你的C#项目中安装CefSharp库,可以通过NuGet包管理器来完成。
2. 创建一个继承自CefSharp.WinForms.ChromiumWebBrowser的类,重写OnAfterCreated方法。
3. 在OnAfterCreated方法中获取当前的Browser对象,并通过Browser对象的GetHost方法获取Host对象。
4. 在Host对象中注册一个IRequestHandler实例,该实例可以拦截和处理浏览器请求。
5. 在IRequestHandler实例中实现自定义的处理逻辑,例如修改请求参数、注入JavaScript代码等。
下面是一个简单的示例代码:
```csharp
using CefSharp;
using CefSharp.WinForms;
class MyBrowser : ChromiumWebBrowser
protected override void OnAfterCreated(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser)
var host = browser.GetHost();
var requestHandler = new MyRequestHandler();
host.SetRequestHandler(requestHandler);
class MyRequestHandler : IRequestHandler
bool IRequestHandler.OnBeforeBrowse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, bool isRedirect)
// 在这里可以修改请求参数
return false;
void IRequestHandler.OnResourceResponse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
// 在这里可以处理响应数据
需要注意的是,在实现自定义的IRequestHandler时,还可以覆盖其它方法来实现更丰富的功能,例如OnBeforeResourceLoad、OnResourceLoadComplete等方法。