前期为了开发模拟采集工具,最初是使用WebBrowser控件但是经过n次尝试,发现能力有限需求兼容起来过于麻烦, 最终选择了谷歌的开源浏览器控件CefSharp,基本上满足了项目需求;
以下为使用CefSharp的开发过程之中,遇到的一些注意事项及配置问题
- 下载安装: CefSharp的版本比较多,版本引用错误也会出现一些莫名其妙的问题,所以这里比较建议使用NuGet方式
- CefSharp的编译调试目标平台 : CefSharp的调试、运行均需要明确指定目标平台,而解决方案中,默认的是AnyCup,所以在生成时会提示错误。因而在生成时,要指定运行的平台是x86还是x64,至于选哪个平台可以视实际情况来设置
CefSharp如何提取网页源码?================
最初使用这个控件的时候 ,作为一名英语渣渣可没少为了这个伤脑经。
////// 浏览器加载状态事件 /// /// /// private void ChromiumContainer_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) { ChromiumContainer.Dispatcher.BeginInvoke(new Action(() = >{ NetAddress.Text = ChromiumContainer.Address; if (ChromiumContainer.IsEnabled && ChromiumContainer.IsLoaded) { //加载完成 可以获取html string HtmlString=GetHtmlFromChromiumWebBrowser(); //TODO } })); } /// /// 获取浏览器Html源码 /// /// private string GetHtmlFromChromiumWebBrowser() { Task < String > TaskHtml = ChromiumContainer.GetBrowser().MainFrame.GetSourceAsync(); string HtmlResponse = TaskHtml.Result; return HtmlResponse; }
以前(几年了)写的两个小程序 不一定还能正常采集可以当例子看看 需要的右侧自取