2015-12-15 75 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 
});