1. 程式人生 > >Requests 之Max retries exceeded with url[Errno 10054]錯誤新解

Requests 之Max retries exceeded with url[Errno 10054]錯誤新解

只要使用過requests模組,想必對Max retries exceeded with url[Errno 10054]錯誤都不會太陌生。
這是requests常見的一種錯誤,原因就是連線太多沒有關閉導致socket超時。
一般的解讀是urllib3的問題,因為requests是基於urllib3的,urllib3預設不支援長連線即keep-alive

解決方案一

requests.adapters.DEFAULT_RETRIES = 5  

解決方案二

s = requests.session()
s.keep_alive = False

新的情況

我的小爬蟲其實只爬了一個頁面就出現這個錯誤,而且並沒有進行併發,也不會被封,而且幾分鐘前執行還正常。
經過排查發現,剛開了迅雷下載了很多檔案,關了迅雷之後一切正常。
典型的多連線問題,當時出現錯誤的時候真的一臉蒙圈