2012-08-23 24 views
5

próbuję uzyskać listę proxy z tym adresem:Jak można analizować zawartość dynamiczną ze strony internetowej?

Free proxy list

To byłoby fajne, ale numer portu jest dynamiczna treść JavaScript. Jak mogę uzyskać zawartość generowaną przez JavaScript z tej strony? Mam jsoup i djNativeSwing, ale chcę zrobić to w tle wątku.

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

ten kod zwraca wynik zerowy. Prosimy o pomoc.

+0

Sprawdź "htmlUnit" Myślę, że jest to jedyna rzecz, której potrzebujesz. Dzięki. –

+0

Myślę, że to nie jest dla mnie. Mój kod musi być prosty i wieloplatformowy. Jak wiem HTMLUnit - musi mieć ścieżkę SYSTEM - to problem – Trump

+0

Nie potrzebujesz ścieżki systemowej. Stworzyłem robota sieciowego przy użyciu HTMLUnit, który działa na protokole http. więc tak to działa poprawnie. Daj mi znać, jeśli potrzebujesz więcej pomocy. Jeśli chcesz, mogę napisać formalną odpowiedź. –

Odpowiedz

2

Po uruchomieniu metody getHtmlContent() przeglądarka internetowa nie zakończyła ładowania. Zamiast tego użyj czegoś takiego:

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 to Twój przyjaciel!

+0

Dziękuję za szybką powtórkę, ale nie chcę tego używać. I jak nie budować wszystkich klas abstrcat na wydarzenie. – Trump

+0

2 secs, Spróbuję dostać lib i przetestować to –

+0

Ок! Czekam na Ciebie! – Trump