使用过Webbrowser控件的人都知道.NET visual studio 的”Webbrowser”控件只是 internet explorer的包装壳。它的使用体验简直糟糕透了,做爬虫应用程序的期间会遇到许多困难。
那么.NET Webbrowser开发中应该选择哪个作为替代品呢?Webkit Gecko Cef?
下面是我所知道的这些控件的大致 web 框架:
1.Webkit Cairo 0.5 [2010 build] :
它是一个很老的框架,如果你不需要太多东西,只是想要自动化的呈现一些东西,那么它是完美的,比默认的 IE”Webbrowser”控件好很多。
链接: http://webkitdotnet.sourceforge.net
优点:
* 它将自动停止 javascript 提示 (例如如果您正在查看一个网站,有些网站有很多window.confirm或脚本错误提示,体验非常差劲,在这个控件中将不会出现!)
* 我们可以阻止弹出窗口和在控件本身的属性中下载。
* 内存使用很少,相比cef, gecko, IE,只有很少的内存使用。
对于想要查看一系列网站和更少占用内存的开发者来说,这个控件很实用。
注: Webkit 有一个名为 open-webkit-sharp的新项目: https://code.google.com/p/open-webkit-sharp/
2.Gecko Fx:
Gecko Fx是 mozilla 火狐浏览器的.NET 包装。它需要 xulrunner,可以在 http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/ 下载
最新的 gecko fx : https://bitbucket.org/geckofx/geckofx-29.0/overview(写这个帖子时候的链接)
以上版本的 xulrunner: http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/22.0/
优点:
* 相当于你在应用程序中集成了火狐浏览器。
* 良好的渲染。但使用一些较高的内存。
* 下载也很好用。
我不建议这个控件用做爬虫机器人,因为它显示 javascript 提示和弹出窗口。可以调用gecko api禁用弹出窗口。但 javascript 提示不能。
3.Cef (Cefsharp 、Awesomium):
Cef(Chromium Embedded framework)是基于chromium内核的框架。Awesomium 和 cefsharp 是 CEF的两个.NET包装。CefSharp 和 Awesomium对于初学者来说可能有点学习难度。
Awesomium 链接: http://awesomium.net
CefSharp 链接: https://github.com/cefsharp/CefSharp