1. 程式人生 > >怎麼解決jsoup不能完整獲取響應內容的問題

怎麼解決jsoup不能完整獲取響應內容的問題

當使用jsoup做爬蟲類的應用時,很是方便。

但如果遇到不能完整獲取響應內容時,一般有以下幾個原因。

1. 網路異常,造成讀取不全。這個很少發生,因為jsoup會報告exception

2. 網路超時,此時可以設定 connection.timeout(n) 增加超時時間。

3. 一切看起來都正常,也沒有異常發生。 但是獲取的資料就是少了一截。

這裡主要將第三點。

仔細分析獲取到的資料,發現得到資料都是1024k。

如果獲取到的資料不超過1024k,程式正常,得到的資料也正常。

一旦資料超過1024k時,資料就只有預期得到資料的前1024k位元組了。

仔細查詢jsoup的api 發現,預設設定下,jsoup最大獲取的響應長度正好時1M。

所以這個時候只要設定 connection.maxBodySize(0),設定為0,就可以得到不限響應長度的資料了。

完整程式碼就是

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();

--------------------- 本文來自 xiciliu 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/xiciliu/article/details/56847659?utm_source=copy

G M T
Detect languageAfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu AfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu
Text-to-speech function is limited to 200 characters