2015-12-15 78 views
8

我想获取HTML页面的源代码,但它有一个JS脚本,可以动态加载数据并将接收的内容附加到页面上。如何在等待JS加载内容后解析HTML页面?

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

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

+0

类似的document.getElementById( “elementid”)outerHTML项目之后被渲染。 – Bindrid

+0

显示这个JS脚本的样子。 –

+0

最好的办法是通过Phantom运行它并使用Phantom的'page.content'。 – 2015-12-15 04:03:47

回答

0

您可以使用;

$(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 
});