怎麼解決jsoup不能完整獲取響應內容的問題
阿新 • • 發佈:2018-12-12
當使用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
Detect languageAfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu | AfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu |