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

C#(.NET)的无头浏览器?,c#,.net,browser,automation,web-scraping,C#,.net,Browser,Automation,Web Scraping,我是一名Python开发人员,正在构建GUI web抓取应用程序。最近,我决定迁移到.NET framework并用C#编写相同的应用程序(这不是我的决定) 在Python中,我使用了Mechanize库。然而,我似乎在.NET中找不到类似的东西。我需要的是一个以无头模式运行的浏览器,它能够填写表单、提交表单等。JavaScript解析器不是必须的,但它会非常有用 有一些选择: (免费) 它基于Chrome/WebKit,工作起来很有魅力。 有一个免费的许可证,但也有一个商业许可证,如果需

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


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

有一些选择:

  • (免费)


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

  • (免费)(HTML解析器库,不是无头浏览器)
    这有助于从HTML等中提取信息,在您的情况下可能很有用(可能与)

您可能正在使用通过无窗口ActiveX/COM API与IE通信的类来寻找(目前处于测试阶段)或类似的东西

基本上,您将使用Internet Explorer的Trident引擎运行一个成熟的浏览器(而不是http请求包装器),如果您对JavaScript API(的一个端口)不感兴趣,您可能仍然能够使用一些C代码库来绕过关键概念(自定义头、cookie、脚本执行、屏幕截图呈现等)

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

更多解决方案:

  • -全功能无头网络 浏览器经常与硒搭配使用,使您 从.NET应用程序访问浏览器
  • ()-轻量级无头web浏览器。它是beta版,但在某些情况下已经足够了

我曾经在web测试中使用这两种方法。但它们也适用于网络抓取。

谢谢。嗯,如果我错了,请纠正我,但是所有这些(或者至少前两个)不都需要创建用户界面吗(我从阅读文档中得出的结论)?我需要的是一个无头浏览器,所以它没有GUI。@Deusdies没有-至少第二个(Awesomium)和第三个(HTML Agility Pack)链接完全没有头。。。对于第一个链接,我不确定…@Deusdies例如Awesomium-根据文档(见),如果你想在UI中呈现像素,它会给你像素,如果不是,就不需要。对于通过谷歌来到这里的任何人来说,HTML Agility Pack不是一个无头浏览器,它只是一个与webclient结合使用的HTML解析器。无头浏览器的作用远不止于此,因为这个问题得到了回答,Awesomium看起来已经死了。一个不需要任何其他库的DIY版本:适用于我的需求。你看过硒(即无头Chrome,无头Firefox,或者被贬低的幻像Web驱动程序)吗?考虑在ASP.NET,无头Chrome中用硒迁移问题。ChromeOptions选项=新的ChromeOptions();选项。添加参数(“--headless”);使用(var-driver=new-ChromeDriver(options)){…}一个指向潜在解决方案的链接总是受欢迎的,但是请在该链接周围添加上下文,以便您的其他用户了解它是什么以及它为什么存在。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。考虑到仅仅是一个指向外部站点的链接是感谢你们的一个可能的原因。我已经更新了我的答案。过度促销特定产品/资源可能会被社区视为垃圾邮件。看一看,特别是最后一部分:避免公开的自我推销。您可能还对@Knyaz感兴趣-您有硒的工作示例吗?比方说,当运行某个javascript并从该javascript获得返回时。@Knyaz,需要Optimus支持。请检查擎天柱。net@yandex.ru.