java - 获取 JavaScript 创建的链接的内容

标签 java javascript jsoup

我正在尝试构建一个非常初级的爬虫,它可以通过某些特定链接并从中提取内容。我正在使用 JSoup 遍历页面上的链接并阅读所需的内容。

但是我在其中一个网站上遇到了障碍。它是一种新闻门户网站,允许用户发表自己的评论。我需要提取这些评论。但是,如果评论超过 5 条,它们将分布在多个页面上,并且指向后续页面的链接由 href 中的 JavaScript 代码创建(而不是真正的链接)。它是这样的:

<a id="pager1_lnkPage2" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;pager1$lnkPage2&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">2</a>

现在我不知道如何遍历这个 JavaScript 生成的链接。有什么方法可以获取这些链接引用的页面上的数据(从表面上看,这似乎没有创建任何新链接,因为在我们浏览其他页面时 URL 不会更改)?

此处供您引用的是a link to one such page .用于浏览多个页面的链接位于页面的右下角。

它嵌入在带有 iframe 中主要故事的页面上。

我在 javax 中也遇到过一个名为 ScriptEngine 的接口(interface),但我对它的理解不够好,无法在这里使用它。

谢谢

最佳答案

我从未使用过 jsoup,但从它的描述(它是 HTML 解析器)和您试图以某种方式将 javascript 合并到其中的事实来看,这告诉我您选择了错误的工具来完成这项工作。

在你的情况下,我宁愿选择 Zombie.js (基于 Node.js)或 Selenium .如果你想坚持使用 Java,后者可能是更好的选择(Selenium 有基于 Java 的插件)。

关于java - 获取 JavaScript 创建的链接的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721886/

相关文章:

javascript - 改变所选div的颜色jquery

java - 通过 VPN/代理的 JSoup

java - 如何在不显示黑屏的情况下掩盖来自android服务器的响应所花费的时间?

java - Eclipse:导入失败类时没有注意到错误

java - 如何在 Java 中绘制平滑的缓冲图像?

javascript - ionicScrollDelegate 与 ionic (AngularJS)

java - opencv 3.2.0 java 人脸识别 Ubuntu

javascript - 将数组传递给 json.stringify

android - java.lang.RuntimeException : An error occured while executing doInBackground() with jsoup 错误

java - 从 html <body> 元素中抓取数据