HTTPConnectionPool(host='xx.xx.xx.xx', port=xx): Max retries exceeded with url:(Caused by ConnectTimeoutError( ...))


HTTPConnectionPool(host='xx.xx.xx.xx', port=xx): Max retries exceeded with url:(Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000015A25025EB8>, 'Connection to xx.xx.xx.xx timed out. (connect timeout=10)'))

網查說是http連接太多沒有關閉導致的

解決辦法:

1、增加重試連接次數

requests.adapters.DEFAULT_RETRIES = 5

2、關閉多余的連接

requests使用了urllib3庫,默認的http connection是keep-alive的,requests設置False關閉。

s = requests.session()

s.keep_alive = False

 

網搜的解決方案,我的代碼在for循環里不斷post url,的確是打開了很多連接沒關閉。

不知道是不是這個原因,加上上述3行代碼之后,代碼跑完了。

除上述改動外,timeout由原來的10改為了30。

 

還有另外一種說法是在上述3行代碼基礎上再掛代理,代理設置一下proxies參數即可,不貼代碼了。

不過沒有嘗試,可用的免費代理比較少,效率會非常低,不管有用否,不嘗試了。

 

unfortunately,第二次再跑又報如下錯誤:

HTTPConnectionPool(host=''xx.xx.xx.xx', port=xx): Max retries exceeded with url: (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000237EE44EF98>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反 應,連接嘗試失敗。',))

 

太晚了,先睡了,回頭再說吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM