2015-12-15 7 views
8

Voglio ottenere il codice sorgente di una pagina HTML, ma ha uno script JS che carica i dati in modo dinamico e allega il contenuto ricevuto alla pagina.Come analizzare una pagina HTML dopo aver atteso che JS caricasse il contenuto?

Sto utilizzando jsoup per analizzare HTML, ma restituisce il contenuto solo prima dell'esecuzione di JS, quindi non ricevo i dati caricati dinamicamente.

Come posso ottenere il codice sorgente dopo l'esecuzione dello script utilizzando qualsiasi framework, cli, ecc.?

+0

qualcosa come document.getElementById ("elementID") outerHTML dopo che l'oggetto è reso.. – Bindrid

+0

Mostra come appare questo script JS. –

+0

La migliore scommessa è quella di eseguirlo tramite Phantom e usare 'page.content' di Fantasma. –

risposta

0

È possibile utilizzare;

$(window).load(); 

Che attenderà fino a quando la pagina non viene caricata.

Un'altra opzione:

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

e usarlo in questo modo:

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