關於([WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。)的解決方案


在爬取一個小站時,遇到了前幾十條網頁能順利爬取,但突然報錯的情況。
報錯信息如下:Message=HTTPConnectionPool(host=‘pub.sinoss.net’, port=80): Max retries exceeded with url: /portal/webgate/CmdProjectView?proj_id=212473&applier=%C0%EE%BB%B3%C1%C1 (Caused by NewConnectionError(’<urllib3.connection.HTTPConnection object at 0x000001B7EEE35A58>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。’,))
把這個報錯信息一百度,發現有很多博客,但都沒能解決問題。在嘗試了一中午之后,終於成功了!現將經驗做一簡要總結:
報錯原因如下:
1.ip被封。
2.http的連接數超過最大限制。headers的Connection參數默認為keep-alive,導致之前所有的鏈接都一直存在,占用了后續的鏈接請求。
3.網站服務器太差,爬取請求的速度太快。(我的就是這樣)
解決方案:
1.換ip,更換headers或者使用代理ip。
2.將Connection參數的值改為close。或者在requests.get前一行添加requests.adapters.DEFAULT_RETRIES = 5,意思是連接失敗時重連五次。
3.將爬取操作放在while語句中。格式如下(此條100%有用):

while True:
		try:
			response = requests.get(url, headers=headers,timeout=(30,50),verify=False)
			break
		except:
			print("Connection refused by the server..")
			print("Let me sleep for 5 seconds")
			print("ZZzzzz...")
			t.sleep(5)
			print("Was a nice sleep, now let me continue...")
			continue

  


免責聲明!

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



猜您在找 問題解決:URLError urlopen error [WinError 10060]由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗 解決 s.connect((host, port)) TimeoutError: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。 Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗 Scrapy,終端startproject,顯示錯誤TimeoutError: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗問題 requests超時重試方法(由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗) requests超時重試方法(由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗) TensorFlow實現Softmax Regression識別手寫數字中"TimeoutError: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗”問題 Python操作FTP時,TimeoutError: [WinError 10060] 由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。 FTPIT技術疑難雜症 svn checkout 提示“由於連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。”解決方法
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM