爬蟲卡住無報錯資訊

2021-10-06 09:30:07 字數 662 閱讀 9242

用了requests庫,爬取了一晚上,程式在某個頁面hang住了,沒有任何報錯資訊,也不退出,也不前進,日誌和程序查不出問題。

操作回顧:

檢視nohup.out,無任何異常資料;

檢視程式log,在183頁有資料,184頁資料未出現;

ps aux |grep 檢視程序,未占用大量cpu和記憶體,排除死迴圈;

檢視**,未使用多執行緒多程序,排除死鎖;

檢視問題程序開啟的檔案,lsof -p xx,發現最後開啟的檔案是建立了2個tcp連線,並且一直未斷開,考慮io阻塞的可能性;

再次檢視**,設定了io連線重試,未設定連線超時,但自己一直以為requests庫有預設超時,故不得其解;

再次lsof檢視,跟進lsof -i:port看建立的是什麼連線埠,發現是https

網上搜尋requests庫超時重試問題,得到下面一句話:

讀取超時是沒有預設值的,如果不設定,程式將一直處於等待狀態

豁然開朗!

一直以為的預設超時是連線超時,預設2s,並且session中通過adapter設定的retry重試也是簡單的預設針對連線超時超時,除非使用retry物件詳細指定超時機制。

解決方法:

然後可以用retry指定session中的adapter讀取超時重試次數;

python多程序爬蟲卡住 Python多程序爬蟲

匯入第3方庫 from bs4 import beautifulsoup from spider.extra import utils from multiprocessing import process,value,joinablequeue,manager,pool import thread...

VS報錯資訊

今天開啟本地頁面發現載入的資源有報錯資訊,404,找不到了。後來發現這個資源檔案我都沒見過,找了半天沒找到,更加神奇的是,過了一會,因為頁面重新生成,我又開啟了一次這個頁面,發現報錯資訊都沒有了。老大告訴我這是vs編輯器報的錯,可以不用理會。可是我還是沒懂是什麼問題?於是稍微研究下了一下。先說一下,...

python 爬蟲 報錯 求救

在找到某度文庫文件的js檔案鏈結後想用json.loads 進行解析 以上為鏈結的js 檔案 import json import re deffetch url url headers session requests.session return session.get url,headers ...