javascript - 如何使用jsoup在android中用js解析网页内容

标签 javascript android jsoup

我如何在 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/

相关文章:

javascript - 在 Electron 窗口悬停时隐藏标题栏?

javascript - 我的简单正则表达式不起作用

java - 获取文件过早结束异常

html - Jsoup 没有选择脚本标签

javascript - 如何使用带有变量的javascript访问对象数组

android - Visual Studio Cordova 工具,错误文件中的设备调试断点

java - 使用 controlTransfer 与 USB 设备通信

java - 使用 OpenCV 进行边缘检测 (Canny)

android html下载和解析错误

javascript - 设置 div 的宽度取决于图像的 x 宽度