當使用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位址,刪掉環迴介面後問題解決...