2012-08-23 8 views
5

cerco di ottenere una lista di proxy da questo URL:Come posso analizzare il contenuto dinamico da una pagina Web?

Free proxy list

Questo sarebbe bello, ma il numero di porta è contenuto dinamico JavaScript. Come posso ottenere contenuti generati da JavaScript da questa pagina? Ho jsoup e djNativeSwing ma voglio farlo in background thread.

JWebBrowser webBrowser = new JWebBrowser(); 
webBrowser.navigate("http://spys.ru/en/free-proxy-list/"); 
System.out.println(webBrowser.getHTMLContent()); 

questo codice restituisce un risultato Null. Aiuto per favore.

+0

check out 'htmlUnit' Penso che sia l'unica cosa di cui hai bisogno. Grazie. –

+0

penso che non sia per me. Il mio codice deve essere semplice e crossplatform. Come so HTMLUnit - deve avere il percorso SYSTEM - è un problema – Trump

+0

No non hai bisogno di percorso di sistema. Ho creato il web crawler usando HTMLUnit che funziona su protocollo http. quindi sì funziona correttamente. Fammi sapere se vuoi più aiuto. Posso scrivere una risposta formale se vuoi. –

risposta

2

Il browser non ha caricato il limite quando si chiama il metodo getHtmlContent(). Usa invece qualcosa del genere:

JWebBrowser webBrowser = new JWebBrowser(); 
webBrowser.navigate("http://spys.ru/en/free-proxy-list/"); 
webBrowser.addWebBrowserListener(new WebBrowserListener(){ 
    public void loadingProgressChanged(WebBrowserEvent e){ 
     if(e.getWebBrowser().getLoadingProgress()==100) 
      System.out.println(webBrowser.getHTMLContent()); 
    } 
} 
/* Note: I wrote this in the comment field without any testing, 
    you probably have to make the webBrowser final. */ 

JavaDocs è tuo amico!

+0

Grazie per la riproduzione rapida, ma non mi piace per ottenere da questo codice. E come non costruire tutte le classi abstrcat per l'evento. – Trump

+0

2 secondi, proverò a prendere il lib e testarlo –

+0

Ок! Ti sto aspettando! – Trump