下面是簡單的一個重復請求過程,更高級更簡單的請移步本博客: https://www.cnblogs.com/fanjp666888/p/9796943.html
在爬蟲的執行當中,總會遇到請求連接超時的情況,下面的代碼塊是在請求超時的情況下,捕捉超時錯誤並連續發送多次請求,只到請求連接成功。
NETWORK_STATUS = True # 判斷狀態變量
try:
response = requests.post(url, headers=self.headers, data=data, timeout=5)
if response.status_code == 200:
return response
except requests.exceptions.Timeout:
global NETWORK_STATUS
NETWORK_STATUS = False # 請求超時改變狀態
if NETWORK_STATUS == False:
'''請求超時'''
for i in range(1, 10):
print '請求超時,第%s次重復請求' % i
response = requests.post(url, headers=self.headers, data=data, timeout=5)
if response.status_code == 200:
return response
return -1 # 當所有請求都失敗,返回 -1 ,此時有極大的可能是網絡問題或IP被封。