在网页上评估所有 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/