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

时间:2012-04-15 11:00:52

标签: c# .net browser automation web-scraping

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

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

3 个答案:

答案 0 :(得分:30)

有一些选择:

  • WebKit.Net(免费)

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

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

答案 1 :(得分:10)

更多解决方案:

  • PhantomJS - 功能齐全的无头网络 浏览器。经常与Selenium配对使用 从.NET应用程序访问浏览器。
  • Optimusnuget package) - 轻量级无头网络浏览器。它处于测试阶段但对某些情况来说已经足够了。

我曾经用它们进行网络测试。但它们也适合网络抓取。

答案 2 :(得分:4)

您可能会使用TrifleJS类通过无窗口ActiveX / COM API与 .NET WebBrowser (当前处于测试阶段)或类似事件之后。

如果您对JavaScript API(phantomjs的端口不感兴趣,您将使用Internet Explorer的Trident引擎运行完全成熟的浏览器(而不是http请求包装器)。 )您仍然可以使用一些C#代码库来解决关键概念(自定义标头,cookie,脚本执行,屏幕截图渲染等)。

请注意,这也可以根据您安装的内容模拟不同版本的IE。

enter image description here

相关问题