【发布时间】:2014-04-18 21:39:47
【问题描述】:
我可以连接到大多数网站并很好地获取 HTML,但是当尝试连接到大部分内容是在使用 JavaScript 加载初始页面后生成的网站时,它不会获取任何数据。有什么方法可以用 Jsoup 做到这一点还是不支持它?
【问题讨论】:
-
JSoup 是解析器,而不是浏览器引擎。您需要使用一些网络驱动程序,例如 selenium
标签: java javascript parsing jsoup
我可以连接到大多数网站并很好地获取 HTML,但是当尝试连接到大部分内容是在使用 JavaScript 加载初始页面后生成的网站时,它不会获取任何数据。有什么方法可以用 Jsoup 做到这一点还是不支持它?
【问题讨论】:
标签: java javascript parsing jsoup
JSoup 包含一些基本的连接处理,但它不是 Web 浏览器。它擅长解析静态 html 内容。它不运行任何javascript,所以你不走运。但是,您可能会遵循不同的选择:
您可以分析您要检索的页面,并了解您感兴趣的内容是如何加载的。通常,挖掘加载内容的原始来源并使用它并不是很困难。这种方法的好处是您无需额外的库即可获得所需的内容,并且检索速度很快。
您可以使用(完整)浏览器并自动加载页面。一个非常好的工具是 selenium webdriver 结合无头 webkit 浏览器 phantomjs。但是,这需要在您的项目中使用额外的软件和额外的库,并且运行速度会比第一个解决方案慢得多。
【讨论】: