在不安装浏览器的情况下,用c#抓取javascript生成的网站



我正在开发一个网站爬虫API来抓取javascript生成的网站。我们正在抓取的网站需要启用Javascript来完全渲染HTML。我尝试过许多解决方案,如HtmlAgilityPack和AngleSharp,但它们只是HTML解析器,由于缺少Javascript功能,它们无法渲染页面。

我尝试使用Selenium.WebDriver实现无头浏览器。ChromeDriver,它在我的本地机器上运行得很好。但是,我们的生产环境非常有限,只有Internet Explorer浏览器可用,并且不允许我们安装任何其他浏览器。所以这个chromedriver也不起作用。Internet Explorer甚至不能从浏览器本身完全呈现网站。所以IE绝对是过时了。

有没有一种方法来刮一个javascript生成的网站,而不必安装浏览器?比如在没有安装浏览器的情况下在服务器上实现无头浏览器?或者这是一个死胡同。谢谢!

您可以尝试使用一种使用全功能内置Chromium且不需要在目标环境中安装Google Chrome的解决方案。所有必需的二进制文件将随铬解决方案。

对于。net和c#有很多这样的解决方案:

CefSharp

一个围绕Chromium嵌入式框架(CEF)的开源。net包装器。它允许你在。net应用中嵌入Chromium。

社区支持。如果你需要帮助与图书馆的使用,阅读文档或询问社区。如果你需要一个功能或一个错误修复,你可能需要自己做。

DotNetBrowser

一个商业库,允许将基于chrome的浏览器与。net应用程序集成,以显示和处理HTML5, CSS3, JavaScript等。

这是一个由商业公司支持的专有解决方案。如果您需要有关库使用的帮助,请阅读文档或向该产品的工程师寻求帮助。如果你需要一个特性或bug修复,产品团队会尽快完成。我知道这一点,因为我认识DotNetBrowser团队的工程师。

WebView2

这个控件允许你在你的原生应用中嵌入web技术(HTML, CSS和JavaScript)。WebView2控件使用Microsoft Edge (Chromium)作为渲染引擎在本地应用程序中显示web内容。有了WebView2,你可以在本地应用程序的不同部分嵌入web代码,或者在一个WebView实例中构建所有的本地应用程序。Microsoft支持。

如果你需要帮助,你应该联系WebView2团队。