2015-12-22 112 views
0

我是Jsoup的新手和學習它 我想從imdb網站/特定電影鏈接中提取評分,並發現我將能夠從class = star-box-details的div中獲得該分數,因此我寫下面的代碼:無法使用Jsoup獲取數據

public static void main(String [] args) 
{ 
    try { 
     Elements data; 
     String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; 
     String url = "http://www.imdb.com/title/tt0114746/"; 
     data = Jsoup.connect(url).userAgent(userAgent).get().select("div.star-box-details").select("[href]"); 
     System.out.println(data); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

這真的很奇怪,我沒有得到任何數據,因爲我能夠使用這幾週迴來的評級數據。是的div與類= star-box-details是在網頁/網址上。

回答

1

該特定的用戶代理可能被網站過濾,防止返回內容。你可以使用

String userAgent = "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"; 
+0

是的,它確實工作!但我無法理解爲什麼。我甚至嘗試過不使用任何useragent,即'Jsoup.connect(url).get()。select(「div.star-box-details」)。select(「[href]」),但那也行不通。謝謝 –

+2

網站有政策,根據哪些設備,哪些IP等來到網站。並且不要忘記閱讀政策和機器人文件,不要被列入黑名單 –

+0

@cruxioneffux該網站可能不會在沒有設置用戶代理的情況下返回數據。這可能是由於該網站最近的政策更新造成的。有趣的是整個文檔對於'ExampleBot'來說是空的... – Reimeus