C#(.NET)的无头浏览器?

Bo *_*ich 36 .net c# browser automation web-scraping

我是一名正在构建GUI Web抓取应用程序的Python开发人员.最近我决定迁移到.NET框架并在C#中编写相同的应用程序(这个决定不是我的).

在Python中,我使用了Mechanize库.但是,我似乎无法在.NET中找到类似的东西.我需要的是一个以无头模式运行的浏览器,它能够填写表单,提交表单等.JavaScript解析器不是必须的,但它会非常有用.

Yah*_*hia 32

有一些选择:

  • WebKit.Net(免费)

  • Awesomium
    它基于Chrome/WebKit,就像一个魅力.有免费许可证,但也有商业许可证,如果需要,你可以购买源代码:-)

  • HTML Agility Pack(免费)
    这有助于从HTML等中提取信息,可能对您的情况有用(可能与之结合使用HttpWebRequest)

  • 对于通过谷歌来到这里的任何其他人来说,HTML Agility Pack并不是一个无头浏览器,它只是一个与webclient结合使用的html解析器.无头浏览器的功能远不止9 (52认同)
  • 谢谢.嗯,如果我错了,请纠正我,但不是所有这些(或至少前两个)都需要创建用户界面(我想通过阅读文档)?我需要的是无头浏览器,所以没有GUI. (2认同)
  • 自从这个问题得到解答后,Awesomium看起来已经死了.http://answers.awesomium.com/questions/6880/does-the-project-is-still-supported-developed.html (2认同)

Kny*_*yaz 11

更多解决方案

  • PhantomJS - 全功能无头网络浏览器.通常与Selenium配对使用,允许您从.NET应用程序访问浏览器.
  • Optimus(nuget包) - 轻量级无头网络浏览器.它处于测试阶段但对某些情况来说已经足够了.

我以前用它们进行网络测试.但它们也适用于网页抓取.


Ste*_*las 5

您可能正在使用TrifleJS(当前为beta),或使用.NET WebBrowser类(通过无窗口ActiveX / COM API与IE通信)进行类似操作。

本质上,您将使用Internet Explorer的Trident引擎运行完整的浏览器(而不是http请求包装器),如果您对JavaScript API(phantomjs的端口)不感兴趣,则仍然可以使用某些C#代码库避开关键概念(自定义标题,Cookie,脚本执行,屏幕截图渲染等)。

请注意,这还可以模拟IE的不同版本,具体取决于您所安装的版本。

在此处输入图片说明