我(曾经)是一名 Python 开发人员,他正在构建一个 GUI Web 抓取应用程序。最近我决定迁移到 .NET 框架并用 C# 编写相同的应用程序(这个决定不是我的决定)。
在 Python 中,我使用了 Mechanize 库。但是,我似乎在 .NET 中找不到任何类似的东西。我需要的是一个以无头模式运行的浏览器,它能够填写表单、提交表单等。JavaScript 解析器不是必须的,但它会非常有用。
我(曾经)是一名 Python 开发人员,他正在构建一个 GUI Web 抓取应用程序。最近我决定迁移到 .NET 框架并用 C# 编写相同的应用程序(这个决定不是我的决定)。
在 Python 中,我使用了 Mechanize 库。但是,我似乎在 .NET 中找不到任何类似的东西。我需要的是一个以无头模式运行的浏览器,它能够填写表单、提交表单等。JavaScript 解析器不是必须的,但它会非常有用。
有一些选项:
WebKit.Net(免费)
Awesomium
它基于 Chrome/WebKit,工作起来就像一个魅力。有可用的免费许可证,但也有商业许可证,如果需要,您可以购买源代码 :-)
HTML Agility Pack(免费)(一个 HTML 解析器库,而不是无头浏览器)
这有助于从 HTML 等中提取信息,并且可能对您的情况有用(可能与 结合使用HttpWebRequest
)
您可能正在使用TrifleJS(目前处于测试阶段),或使用.NET WebBrowser类的类似工具,该类通过无窗口 ActiveX/COM API 与 IE 通信。
您实际上将使用 Internet Explorer 的 Trident 引擎运行一个成熟的浏览器(不是 http 请求包装器),如果您对 JavaScript API(phantomjs的一个端口)不感兴趣,您仍然可以使用一些 C# 代码库绕过关键概念(自定义标题、cookie、脚本执行、屏幕截图渲染等)。
请注意,这也可以模拟不同版本的 IE,具体取决于您安装的内容。