cefsharp(webkit内核)浏览器替代webbrowser用来采集页面数据。
需要在页面form加载完毕,用异步方式自动获取sourcecode。
由于国内cefsharp的资料相对比较少,在google英文资料后得到方法,这里做个笔记备忘:
IWebBrowser.cs 这个接口文件里面
36行: event EventHandler<FrameLoadEndEventArgs> FrameLoadEnd; 页面加载完的“事件”。
262行:GetSourceAsync() 会返回string 结果,可以用来返回html代码
只需要页面一加载完毕就GetSourceAsync() ,加了个Async后缀(异步的意思),之前的名字叫做GetSource()。
以前的GetSource():
下载了最新的cefsharp就不用纠结为何cefsharp找不到GetSource()方法了,现在.net 4 和.net4.5作者都改成GetSourceAsync() 。
具体看下面截图,是因为有人提出来过这个建议,所以作者就改了:
具体等页面加载完毕,自动获得页面source code的代码如下:
var task1 = browser.GetSourceAsync();
task1.Wait();
string html = task1.Result;
以上例子是在CefSharp.MinimalExample完成。更多的用法,可以参考:https://github.com/cefsharp/CefSharp/issues/646