【问题标题】:Download HTML of a webpage that is changed by JavaScript下载由 JavaScript 更改的网页的 HTML
【发布时间】:2014-07-08 02:05:18
【问题描述】:

我正在编写的程序是用 Java 编写的。

我正在编写一个小程序,它将下载网页的 html 并保存它们。它适用于不使用 JavaScript 的基本页面。但是,如果我在脚本更新后需要该页面,我该如何下载呢?我正在处理的页面实际上是由 Ajax 更新的,这可能会更难。

我知道这可能是一个涉及设置某种 JavaScript 运行时环境的难题。我已经为任何难度级别的解决方案做好了准备,我只是不知道如何解决它或从哪里开始。

【问题讨论】:

  • 您如何知道脚本已完成?如果有连续的动画或其他 DOM 变化怎么办?
  • 如果您可以从 Java 运行 JavaScript sn-p,则可以使用 document.body.innerHTML(和 document.head.innerHTML)获取页面内容。但我也有同样的问题@LeeTaylor。
  • 我熟悉该网站,在这种特殊情况下,这应该不是问题。虽然,我知道为此制作一个通用工具是多么困难。

标签: java javascript html


【解决方案1】:

您不能仅使用 Java 单独做到这一点。由于您要下载的页面是使用 javascript 呈现的,因此您必须能够执行 javascript 以获取整个呈现的页面。

由于这种情况,您需要使用无头浏览器,这是一种可以访问网页但不能在 GUI 中显示输出的 Web 浏览器,旨在提供完全呈现的网页内容以提供服务到程序或脚本。

您可以从最著名的SeleniumHtmlUnitPhantomJS 开始

【讨论】:

  • 我以前从未听说过 PhantomJS,我只是用它玩了一会儿,它太棒了!感谢您让我意识到这一点。
  • @4th_dimention 你可以在 Java 中通过命令行调用一个简单的 PhantomJS 脚本来做到这一点,该脚本将网页作为参数并呈现它。
猜你喜欢
  • 2020-11-22
  • 2020-11-29
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
相关资源
最近更新 更多