爬蟲框架Scrapy使用IP代理,DOWNLOAD_TIMEOUT不起作用的解決方法

1.運行環境:

Linux/Window 10 + Scrapy 1.7.4

2.問題描述:

藉助scrapy框架採集數據時,採集完第一條數據後,卡住不動,6,7分鐘之後纔開始採集下一條,如下圖。
在這裏插入圖片描述
還有間隔10幾分鐘的,沒截到圖,就放了這張圖意思意思。若是一直這樣超時不報異常,無法觸發異常機制再次發起請求,就會導致採集效率太低了。
其實按道理在settings.py中設置:

DOWNLOAD_TIMEOUT = 60

針對單個腳本進行配置:

    custom_settings = {
        'DOWNLOAD_TIMEOUT': 60,
     }

如此設置之後,本該若是請求時間超過60秒,就會報異常,異常機制是會再次發起請求的,但是卡住不動,異常也無法獲取。

3.解決方法:

上面的設置都不起作用,沒法,又去翻了一遍scrapy文檔
在這裏插入圖片描述
然而
在這裏插入圖片描述
走投無路之下嘗試用meta攜帶download_timeout到相應請求中,結果驚訝的發現,起作用了。超時之後成功觸發異常,這…
在這裏插入圖片描述
是的,就是下面這行代碼,解決了這個問題:

meta={'download_timeout': 60}

在這裏插入圖片描述就很納悶,爲什麼明明設置了全局超時控制,卻不起作用,還得另外單獨設置。。。

轉載請註明轉自:https://leejason.blog.csdn.net/article/details/106380324

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章