39

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

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

4

3 回答 3

33

有一些选项:

  • WebKit.Net(免费)

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

  • HTML Agility Pack(免费)(一个 HTML 解析器库,而不是无头浏览器)
    这有助于从 HTML 等中提取信息,并且可能对您的情况有用(可能与 结合使用HttpWebRequest

于 2012-04-15T11:04:16.667 回答
12

更多解决方案:

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

我曾经将两者都用于网络测试。但它们也适用于网页抓取。

于 2016-07-19T11:32:20.600 回答
5

您可能正在使用TrifleJS(目前处于测试阶段),或使用.NET WebBrowser类的类似工具,该类通过无窗口 ActiveX/COM API 与 IE 通信。

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

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

在此处输入图像描述

于 2015-01-06T11:32:17.427 回答