最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
岳西县| 咸丰县| 远安县| 安岳县| 灵丘县| 喀喇| 蒲城县| 双江| 隆安县| 台州市| 宁城县| 衢州市| 恭城| 永川市| 河池市| 吉安县| 怀柔区| 朔州市| 阜城县| 康保县| 丰宁| 博兴县| 元江| 阳城县| 灯塔市| 灵寿县| 墨玉县| 明光市| 肥东县| 万州区| 濮阳县| 雷波县| 金昌市| 汝州市| 金川县| 老河口市| 夏邑县| 自贡市| 勃利县| 许昌县| 梅州市|