国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)遵守國家法律
诏安县| 永胜县| 兴城市| 策勒县| 神农架林区| 枣庄市| 明星| 滁州市| 富平县| 兴安县| 收藏| 霸州市| 庆安县| 岳阳县| 沭阳县| 扶沟县| 双峰县| 青岛市| 遂宁市| 临江市| 五莲县| 崇左市| 乃东县| 灌云县| 台安县| 阳新县| 商河县| 民县| 崇信县| 汶上县| 乌鲁木齐县| 金山区| 乌兰察布市| 丘北县| 来凤县| 东丽区| 彰化市| 汝南县| 班戈县| 万安县| 扎赉特旗|