等待JS加载内容后如何解析HTML页面?

How to parse a HTML page after waiting for JS to load the content?

提问人:FilipeFalcao 提问时间:12/15/2015 最后编辑:FilipeFalcao 更新时间:3/21/2018 访问量:2053

问:

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

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

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

JavaScript HTML 解析

评论

0赞 Bindrid 12/15/2015
类似于 document.getElementById(“elementid”).outerHTML 在项目呈现后。
0赞 Yeldar Kurmangaliyev 12/15/2015
显示此 JS 脚本的外观。
0赞 12/15/2015
最好的办法是通过 Phantom 运行它并使用 Phantom 的 .page.content
0赞 12/15/2015
请参见 stackoverflow.com/questions/16706777/...
1赞 gafi 12/15/2015
请指定您正在使用的框架,分享一些代码,并提及您到目前为止尝试过的内容

答:

0赞 yjs 12/19/2015 #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
});
-1赞 Majar K 3/21/2018 #2

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

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