python 爬蟲 處理429錯誤

2021-10-17 18:46:58 字數 862 閱讀 2073

http**429表示訪問過快。

伺服器在溫柔地提示你,可以爬,但是爬慢一些。

控制訪問的速度就可以了。

有些伺服器會在返回的頭部中新增"retry-after",告訴你多久之後重試。

獲取這個值,然後sleep就可以了。

捕獲錯誤

try: 

.....

except aiohttp.clientresponseerror as e:  # 響應錯誤

if status== 429:

retryafter="retry-after"

headers=e.headers

sec=getheader(headers, retryafter)

if len(sec)>0:

sec=int(sec)

print(status, "請求過快,伺服器要求待",sec , url )

time.sleep(sec) # if the rate limit is renewed in a minute, put 60 seconds, and so on.

else:

print(status, "伺服器拒絕了請求,表示請求過快。取消重試,請稍後再試!", url)

def getheader(headers, key):

key_lower=key.lower()

headers_lower =

if (key_lower in headers_lower) :

return headers_lower[key_lower]

else:

return ''

大概就是這樣。

python爬蟲 爬蟲異常處理

異常處理概述 常見狀態碼和含義 urlerror與httperror 爬蟲遇到異常時就會直接崩潰停止執行,下次再次執行時,又會重新開始。所以開發乙個具有頑強生命力的爬蟲,必須進行異常處理。兩者都是異常處理的類,httperror是urlerror的子類,httperror有異常狀態碼與異常原因,ur...

Python爬蟲錯誤記錄

本文注意是用於記錄在用python寫爬蟲的過程中所經歷的一些問題及其解決方法,便於後續翻查。出錯 fp open filetest.txt w fp.write hello world n fp.close import os os.rename filetest.txt newfiletest.t...

python 爬蟲 requests 錯誤彙總

原因分析 使用的 有問題 cannot connect to proxy 這是乙個https的不安全請求警告,解決方法就是將該警告忽略掉,忽略該警告就不會再提示了 from urllib3.exceptions import insecurerequestwarning from urllib3 i...