2012-04-12 57 views
18

我想解析任何給定頁面的HTML轉儲。我使用HTML Parser並嘗試使用JSoup進行解析。JSoup.connect拋出403錯誤,而Apache.httpclient能夠獲取內容

我發現有用的功能,在Jsoup但我得到403錯誤,同時呼籲Document doc = Jsoup.connect(url).get();

我試過了HTTPClient,得到的HTML轉儲,這是成功的爲相同的URL。

爲什麼JSoup會給403提供給來自commons http client的內容的同一個URL? 我做錯了什麼?有什麼想法嗎?

+1

請shre鏈接的伎倆。你連接到。 – vacuum 2012-04-12 09:27:41

+3

檢查鏈接http://stackoverflow.com/questions/7508813/can-jsoup-simulate-a-button-press,類似問題的報告 – 2012-04-12 09:39:29

+0

我想嘗試tcpdump或類似的工具來查看哪些數據是不同的由HTTP客戶端發送,並由JSoup發送。 – 2012-04-12 09:40:22

回答

47

工作方案如下:(感謝安傑洛Neuschitzer提醒把它作爲一個解決方案):

Document doc = Jsoup.connect(url).userAgent("Mozilla").get(); 
Elements links = doc.getElementsByTag(HTML.Tag.CITE.toString); 
for (Element link : links) { 
      String linkText = link.text(); 
      System.out.println(linkText); 
} 

所以,的userAgent呢:)

+2

+1!它正常工作!真棒! – 2012-10-31 20:42:10