【问题标题】:How to parse a HTML page after waiting for JS to load the content?等待JS加载内容后如何解析HTML页面?
【发布时间】:2016-03-20 17:19:31
【问题描述】:

我想获取一个 HTML 页面的源代码,但是它有一个 JS 脚本,可以动态加载数据并将接收到的内容附加到页面上。

我使用jsoup解析HTML,但是它只返回JS执行之前的内容,所以我没有收到动态加载的数据。

如何在使用任何框架、cli 等执行脚本后获取源代码?

【问题讨论】:

  • 在项目被渲染后类似于 document.getElementById("elementid").outerHTML。
  • 展示这个 JS 脚本的样子。
  • 最好的办法是通过 Phantom 运行它并使用 Phantom 的page.content
  • 请说明您正在使用的框架,分享一些代码,并提及您到目前为止尝试过的内容

标签: javascript html parsing


【解决方案1】:

你可以使用;

$(window).load();

等待页面加载完毕。

另一种选择:

function whenAvailable(name, callback) {
var interval = 10; // ms
window.setTimeout(function() {
    if (window[name]) {
        callback(window[name]);
    } else {
        window.setTimeout(arguments.callee, interval);
    }
}, interval);
}

并像这样使用它:

whenAvailable("jsLoadFunction", function(t) {
// do something
});

【讨论】:

    【解决方案2】:

    您可以使用窗口的加载事件。 示例:

    window.onload = function(){
            /*Parse Html*/
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 2016-03-13
      • 2016-10-13
      • 1970-01-01
      相关资源
      最近更新 更多