2012-08-23 53 views
5

我尝试从这个网址得到一个代理列表:如何解析网页中的动态内容?

Free proxy list

这将是很酷,但端口号是动态的JavaScript内容。如何从此页面获取JavaScript生成的内容?我有jsoup和djNativeSwing,但我想在后台线程中执行此操作。

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

此代码返回空结果。请帮助。

+0

check out'htmlUnit'我认为这是你需要的一件事。谢谢。 –

+0

我认为这不适合我。我的代码必须简单且跨平台。正如我所知的HTMLUnit - 必须有SYSTEM路径 - 这很麻烦 – Trump

+0

不,你不需要系统路径。我创建了使用HTMLUnit的网页爬虫,它可以在http协议上工作。所以是的,它确实工作正常。让我知道你是否想要更多的帮助。如果你愿意,我可以写一个正式的答案。 –

回答

2

当您调用getHtmlContent()方法时,webbrowser尚未完成加载。使用类似这样的代替:

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是你的朋友!

+0

感谢您的快速回放,但我不希望从此代码中获得。以及如何不建立所有abstrcat类的事件。 – Trump

+0

2秒,我会尝试获取该库并测试它 –

+0

Ок!我在等你! – Trump