让 Jsoup 支持 JavaScript 动态生成的 html

IT技术 java javascript html jsoup htmlunit
2021-03-14 13:06:07

现在我正在开发一个网络爬虫。这个应该解析一些特定的站点并给我一个输出到一个 xml 文件中。到此为止,没有问题。Crawler 可以工作,您可以通过 cfg 文件快速自定义它。我使用 Jsoup 来解析 HTML 内容。

我刚刚添加了更多网站,并注意到我在通过 JavaScript 创建的 HTML 内容方面遇到了一个大问题。有没有办法让 Jsoup 支持 Javascript?或者至少获得我可以在浏览器中看到的完整 HTML 内容。

我已经尝试过 HtmlUnit,但是这个效果不佳。它没有给我在浏览器中获得的内容。

真诚的,

奥戈福

1个回答

Jsoup 不支持 javascript 并且它不模拟浏览器。如果您打算执行 Javascript,请忘记它。根据我的经验,HtmlUnit 是一款无头浏览器,它给了我最好的结果(总是谈论 Java 框架)。

在 HtmlUnit 中值得尝试的一件事是BrowserVersion在创建WebClient实例时更改(Chrome / InternetEplorer / FireFox)某些站点会以不同的方式做出react,有时仅更改该值可能会给您带来预期的结果。

谢谢。我现在完成了项目的这一部分。HtmlUnit 在我给他的网站上运行得不是很好。现在我使用 phantomjs,我通过 java 执行它并让输出写入 .html 文件。Phantomjs 完成了他的工作,我没有收到任何错误。我得到了几乎可以在浏览器中检查的准确 html。
2021-05-05 13:06:07
是的,phantomjs 真的很酷。我没有提到其中任何一个,因为您使用的是纯 Java。您可以查看的另一个选项是zombie.js
2021-05-15 13:06:07