簡體   English   中英

無法使用Jsoup解析網址的完整html

[英]not able to parse complete html of a url using Jsoup

Jsoup庫未解析給定URL的完整html。 網址的原始html中缺少某些部分。

有趣的是: http : //facebook.com/search.php?init=s : email&q=somebody@gmail.com&type=users

如果您在Jsoup的官方網站http://try.jsoup.org/中提供了上面提到的url,則可以通過提取正確顯示該URL的確切html,但是使用jsoup庫在程序中找不到相同的結果。

這是我的Java代碼:

String url="http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users";

Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36").get();

String question =document.toString();
System.out.println(" whole content: "+question);

清楚地提到了在其官方網站中使用的正確的userAgent,但是結果是,我可以看到原始html代碼的70%,但是在中間,我卻找不到幾個除法標記,它具有我想要的數據。

我試過嘗試.....沒用...為什么文檔中缺少幾個div標簽。

您可以直接將URL放入瀏覽器中,如果登錄到Facebook,則響應將顯示為:“未找到查詢結果。請檢查拼寫或嘗試其他術語。” 這是我在jsoup解析上述URL的html時要尋找的東西。

但是很遺憾,這部分丟失了。實際上,此響應位於div id中:“#pagelet_search_no_results”。 我在解析的html中找不到具有此ID的div。 我嘗試了jsoup提供的許多方法,但是沒有運氣。

據我所知,Jsoup通常將檢索到的內容的大小限制為1M。 嘗試此操作以獲取完整的html源:

Document document = Jsoup.connect(url)
  .userAgent("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36")
  .maxBodySize(0)
  .get();

maxBodySize(0)刪除1M限制。 您可以在連接中設置其他有用的參數,例如超時或cookie。

您還應該設置較大的超時時間,例如:

Document document = Jsoup.connect(url)
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.maxBodySize(0)
.timeout(600000)
.get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM