2011-08-11 64 views
0

最近我一直在玩Java Java Jsoup庫,試圖更好地理解網頁抓取(將數據從網站中拉出)。但看起來,我設法整理的代碼只是部分時間的功能。我的代碼是問題,還是有可能某些網站有措施阻止網頁抓取?與Jsoup的網頁刮擦只能運行一半的時間

這裏是做所有的「魔力」類:

import java.io.IOException; 
import org.jsoup.*; 
import org.jsoup.nodes.Document; 




public class HTMLParser { 

private Document d; 
private String url; 
private String content; 



    public HTMLParser(String url){ 
    this.url = url; 
    connect(); 
    parse(); 
    display(); 

    } 


    private void connect(){ 
     try{ 
     d = Jsoup.connect(url).get(); 
     }catch(IOException e){} 
    } 

    private void parse(){ 
     content = d.body().text(); 

    } 

    private void display(){ 
     System.out.println(content); 

    } 

} 
+0

*或者有可能某些網站有措施阻止網絡抓取?*是的。閱讀他們的「robots.txt」政策。 – BalusC

+0

http://www.robotstxt.org/robotstxt.html – Greg

回答

0

你也可能有問題,如果網站動態加載數據。特別是在這個AJAX時代。 JSoup會忽略robot.txt,還是可以讓它做到這一點?

理想情況下,您需要渲染頁面,然後刮擦它。

該軟件顯然呈現網頁:http://lobobrowser.org/java-browser.jsp 而且肯定有一個API,它可能允許您查看網頁的結構。

+0

從閱讀另一篇文章:'Jsoup忽略robots.txt,因爲它是一個html解析器,而不是一個完全成熟的機器人。任何人都可以確認嗎? –