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

2021-07-27 10:45:15 字數 739 閱讀 8628

當使用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();

jsoup獲取響應內容不完整

jsoup抓取網頁只能抓取一部分不能完整獲取響應內容時,一般有以下幾個原因。1.網路異常,這個很少發生,jsoup會報告exception 2.網路超時,可以設定 connection.timeout n 增加超時時間。3.看起來都正常,沒有異常發生。但是獲取的資料就是少了一截。如果獲取到的資料不超...

IE不能檢視原始檔,怎麼解決?

我原來是用ultraedit檢視的,ultraedit到期了,被我刪了,我又裝了個破解版的ultraedit。現在不能看網頁原始檔,一檢視原始檔就彈出桌面位址列。現在貼出來分享一下,以便以後有朋友遇到相同問題時能很快解決 開始 執行 regedit 按回車,開啟登錄檔編輯器.找到下列登錄檔分支hke...

vmware不能獲取到IP位址解決

一 bridge模式時獲取不到ip位址 原因 有多塊網絡卡 解決辦法 1 禁用多餘網絡卡 以前安裝好的一些虛擬機器,今天開啟後發現都獲取不到ip位址了,使用的是橋接模式。通過抓包發現,原來虛擬機器的dhcp請求均發向了物理機器的環迴介面 loopback 因而獲取不到ip位址,刪掉環迴介面後問題解決...