五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python如何優(yōu)雅的設(shè)置爬蟲重試次數(shù)

2023-02-22 22:32 作者:IFELES  | 我要投稿

Python如何優(yōu)雅的設(shè)置爬蟲重試次數(shù)

工作中經(jīng)常碰到的問題就是,當(dāng)我們?cè)谑褂门老x發(fā)送請(qǐng)求的時(shí)候。某個(gè)方法出現(xiàn)了異常,重試幾次循環(huán)重復(fù)一個(gè)方法是很常見的。一提到重復(fù)操作,我們第一反應(yīng)就是使用循環(huán)。接下來咱們用while看一下示例代碼:

import?requests
url?="www.baidu.com"
i=0
total=2000
while?i?<?total:
????try:
????????result=requests.get(url)
????????return?result.status_code
????except:
????????i+=1

在代碼外面在加一層循環(huán)。這個(gè)代碼看起來已經(jīng)不是丑的問題了。那接下來我們使用一個(gè)優(yōu)雅的方式。python retrying模塊。retrying是一個(gè)python的重試包,可以用來自動(dòng)重試一些可能運(yùn)行失敗的程序段,retrying提供一個(gè)裝飾器函數(shù)retry,被裝飾的函數(shù)就會(huì)在運(yùn)行失敗的情況下重新執(zhí)行,默認(rèn)只要一直報(bào)錯(cuò)就會(huì)不斷重試。首先安裝一下

pip?install?retrying

下面是示例代碼:

from?retrying?import?retry
@retry(stop_max_attempt_number=2000)
def?test():
????url?="www.baidu.com"
????result=requests.get(url)
????return?result.status_code
test()

我們?cè)瓉淼拇a沒有進(jìn)行任何修改,只是說在這個(gè)函數(shù)之前,我們加上了這么一個(gè)裝飾器這樣看起來是不是很優(yōu)雅。那除此之外,我們還可以設(shè)置retrying其他的參數(shù)

  1. 重試之間等待 2 秒。

    @retry(wait_fixed=2000)
    ?def?test():
    ?????url?="www.baidu.com"
    ?????result=requests.get(url)
    ?????return?result.status_code
    ?test()
  2. stop_max_delay 設(shè)置失敗重試的最大時(shí)間, 單位毫秒,超出時(shí)間,則停止重試

    @retry(stop_max_delay?=1000)
    def?test():
    ????url?="www.baidu.com"
    ????result=requests.get(url)
    ????return?result.status_code
    test()
  3. 兩次retrying之間的停留最短時(shí)間wait_random_mint和兩次retrying之間的停留最長時(shí)間wait_random_max

    ?@retry(wait_random_min=100,?wait_random_max=2000)
    ?def?test():
    ??????url?="www.baidu.com"
    ??????result=requests.get(url)
    ??????return?result.status_code
    ??test()
    ?```
  4. wait_exponential_multiplier間隔時(shí)間倍數(shù)增加,wait_exponential_max最大間隔時(shí)間

    @retry(wait_random_min=100,?wait_random_max=2000)
    def?test():
    ????print("test?%d"?%?int(time()))
    ????url?="www.baidu.com"
    ????result=requests.get(url)
    ????return?result.status_code
    test()

其它參數(shù)咱們可以看?官方文檔


Python如何優(yōu)雅的設(shè)置爬蟲重試次數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
涪陵区| 舒城县| 海口市| 泽普县| 三门县| 盈江县| 玉环县| 和政县| 南城县| 梅州市| 阿拉善盟| 宜州市| 奉贤区| 永嘉县| 蓬莱市| 泉州市| 浙江省| 清苑县| 台中市| 廉江市| 巴林左旗| 嵩明县| 闸北区| 河池市| 商河县| 西安市| 宣武区| 神农架林区| 郴州市| 咸宁市| 太保市| 彭阳县| 哈尔滨市| 罗平县| 都昌县| 西安市| 麟游县| 远安县| 长武县| 隆安县| 宁陵县|