java - 评估html中的所有javascript以获得最终的html文档(java)

标签 java javascript

在网页上评估所有 javascript 后,如何获得“最终”html。例如,如果您查看简单的 Google 搜索的页面源 https://www.google.com/#q=books你真正能看到的只是一堆 javascript。但是如果你“检查元素”,你可以看到由 javascript 渲染的实际 html。我想要这个。

我尝试过使用 HtmlUnit 和 JSOUP,但我只是不知道如何获得最终的“渲染”html。也许我错过了一些 javascript 执行调用?

我尝试过 HtmlUnit:

  final HtmlPage page = webClient.getPage(url);
  System.out.println(page.asXml());

和 JSOUP:

  Document doc = Jsoup.connect(url).get();
  System.out.println(doc.toString());

但似乎都无法解析 google.com 搜索 javascript。

编辑:看起来这可能只是我无法评估的谷歌疯狂的JavaScript。我能够通过指向一个非常简单的 html 来生成 dom/xml

<!DOCTYPE html>
<html>
<body>

<script type="text/javascript">
document.write("Welcome!!!");
</script>

</body>
</html>

最佳答案

好吧...显然 HtmlUnit 工作正常,除了不在 google url 上,例如 https://www.google.com/#q=books但如果我将 url 更改为类似 https://google.com/search?hl=en&q=books然后它就能够评估所有的 javascript 并生成一个有用的 DOM。

关于java - 评估html中的所有javascript以获得最终的html文档(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22725960/

相关文章:

javascript - Jquery 更改 ajaxSource 变量

java - 使用 Selenium、Java 查找并单击元素

javascript - 使用 Tape 和 Nightmare.js 进行 ES6 javascript 测试

javascript - 从 selenium 服务器检索新 session 时出错

java - CXF 中未使用 XmlAdapter

javascript - 检查变量是否为空不起作用 | NodeJS、Express

javascript - Rails Controller 操作可以同时处理 html 和 javascript 请求吗?

java - Java 计数方法

java - 如何制作一个包含多个帐户的帐户验证程序?

java - Maven Java 集成