我如何在 Android 中用 js 结果解析 HTML 页面?主要问题是,如果我只是使用 Jsoup.connect() 方法,Document 对象不包含 js 结果,因为 js 需要一些时间来运行。是否可以延迟连接?
最佳答案
正如评论中已经提到的,JSOUP 不运行任何 JavaScript。为此,您需要一个 JavaScript 解释器。
既然您提到您要阅读的页面需要一些时间来呈现,那么很明显您实际上需要运行 JavaScript 来呈现 DOM。
但是,如果您查看页面的源代码,您也许能够弄清楚 JavaScript 实际上是如何呈现页面的。我看到两种可能性:
1) JavaScript 实际上只是运行以动态呈现页面,其中包含初始访问时已加载的信息。对于能够在第一次访问时发送所有相关数据(也称为同构渲染)的现代网站来说,这种情况经常发生。在这里,您可以获得通常在网站上作为 JSON 对象提供的数据的所需信息。您可以提取 JSON,然后使用 JSON 解析器对其进行解析。
2) JavaScript 实际上是异步加载一些数据的。在这种情况下,您可以识别这些 http 请求并使用 JSOUP 获取此数据。通常此类数据采用 JSON 格式,因此在这种情况下,使用 JSON 解析器读取相关部分可能也很有意义。
关于javascript - 如何使用jsoup在android中用js解析网页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164391/