【问题标题】:Execute all javascript in a webpage before parsing解析前执行网页中的所有javascript
【发布时间】:2015-03-01 15:12:42
【问题描述】:

我想下载包含一些 javascript 的网页的 html。如果我使用像 jsoup 这样的库,我会获得没有 javascript 生成的元素的 html。

如何获取javascript执行后得到的html?

编辑:如何在 Java 程序的答案中使用脚本?

【问题讨论】:

  • 如果你想执行(不仅仅是读取)网站上的JavaScript,你需要运行a headless Web browser而不是使用HTML解析器。

标签: java javascript html parsing jsoup


【解决方案1】:

您可以将PhantomJS 与以下脚本一起使用:

var page = require('webpage').create();
page.open('http://stackoverflow.com',function(status){
  if(status !== 'success'){
    console.log('Open failed');
  }else{
   console.log(page.evaluate(function(){
                               return document.documentElement.outerHTML;
                             }));
  }
  phantom.exit();
});

如果您想从 Java 执行此脚本,请阅读以下内容:

Running Phantomjs from javascript, JSP or Java

【讨论】:

  • 感谢您的回答。但我一直有一个问题:如果我将此脚本与链接中显示的代码一起使用,我的程序会进入循环并且我没有答案。我能做些什么来解决这个问题?谢谢
  • 最好的办法是提出一个包含完整细节的新问题。
猜你喜欢
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 2018-02-15
相关资源
最近更新 更多