【Python3爬蟲錯誤】:ConnectionResetError: [WinError 10054] 遠程主機強迫關閉了一個現有的連接?解決辦法

出現問題描述及分析:

最近做爬蟲是,經常出現ConnectionResetError: [WinError 10054] 等錯誤,主要是因爲使用urlopen方法太過頻繁,引起遠程主機的懷疑,被網站認定爲是攻擊行爲,導致urlopen()後,request.read()一直卡死在那裏,導致最後拋出10054異常。
在這裏插入圖片描述

具體解決辦法:

1、設置sleep()等待一段時間後繼續下面的操作【簡單常用】
import time

time.sleep(t)
2、在request後面寫入一個關閉的操作
response.close()
3、設置socket默認的等待時間,在read超時後能自動往下繼續跑
socket.setdefaulttimeout(t_default)
4、防止循環時某一個請求失敗導致循環退出,從而程序退出【常用】

拋出異常,保存日誌或者重新請求,或者加請求超時。=

                try:
                    html = requests.get(pic, headers=Hostreferer, timeout=15)
                    print('成功')
                except requests.exceptions.RequestException as e:
                    print(e)
                    print('失敗')
                    continue

具體例子:

1、使用Python爬取妹子網的圖片,批量下載,附帶源碼,超詳細

2、爬蟲實例源碼下載,修改目錄直接能運行

更多內容參考:
Python爬蟲學習彙總(持續更新)

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