Python?中設(shè)置請(qǐng)求的最大重試次數(shù)示例代碼
本篇文章介紹了為什么我們會(huì)收到錯(cuò)誤消息,指出超出了最大重試次數(shù),以及我們?nèi)绾卧?Python 中為請(qǐng)求設(shè)置 max_retries。 如果服務(wù)器上的負(fù)載導(dǎo)致此錯(cuò)誤,它還會(huì)為我們提供提示。
Python中設(shè)置請(qǐng)求max_retries的錯(cuò)誤,的原因和解決方案
在繼續(xù)查看如何在 Python 中為請(qǐng)求設(shè)置 max_retries 之前,讓我們先解決一些問題。
- 首先,如果您的 URL 不正確,就會(huì)發(fā)生此錯(cuò)誤。 因此,您需要檢查您請(qǐng)求的 URL 是否有效。
- 此錯(cuò)誤也可能由于互聯(lián)網(wǎng)連接而發(fā)生,因此請(qǐng)確保您沒有遇到所有此類問題。
- 當(dāng)服務(wù)器過載時(shí),我們也會(huì)收到此錯(cuò)誤。 當(dāng)服務(wù)器繁忙時(shí),您可能會(huì)遇到此類錯(cuò)誤。
這就是增加請(qǐng)求 URL 的重試次數(shù)的現(xiàn)象來幫助我們的地方。 因此,讓我們了解如何做到這一點(diǎn)。 但是,首先,看看下面的代碼。
示例代碼:
import requests # increass retries number retries = #enter the number of retires you want to increase requests.adapters.DEFAULT_RETRIES = retries
這是您可以在 Python 中增加 URL 請(qǐng)求的重試次數(shù)的方法,但是如果由于服務(wù)器負(fù)載而出現(xiàn)此錯(cuò)誤,您可以使用以下提示。
> python -m pip install requests
在 Python 中擺脫請(qǐng)求的 Set max_retries 的技巧
如果服務(wù)器上的負(fù)載導(dǎo)致此錯(cuò)誤,您可以使用以下任何提示。
- 禁用 keep_alive
您可以禁用會(huì)話的 keep_alive 功能。 下面的一段代碼解釋了如何做到這一點(diǎn)。
request_session = requests.session() # disable keep_alive request_session.keep_alive = False request_session.get(your_url)
- 使用超時(shí)
當(dāng)服務(wù)器過載、繁忙或遠(yuǎn)離該位置時(shí),這可能成為您遇到相同錯(cuò)誤的原因。 為避免這種情況,您可以增加響應(yīng)時(shí)間。
您可以使用來自服務(wù)器的 POST 和 GET 請(qǐng)求來完成此操作。 例如,看看下面的代碼。
import requests #the time in seconds in this example is increasing time by 5 req = requests.get(your_url, timeout=5) req = requests.post(your_url, timeout=5)
您還可以在超時(shí)參數(shù)中使用元組。 第一個(gè)參數(shù)會(huì)增加構(gòu)建時(shí)間,第二個(gè)參數(shù)會(huì)增加響應(yīng)時(shí)間。 下面給出了代碼示例。
req = requests.get(your_url, timeout=(3,6))
- 設(shè)置 backoff_factor(延遲/睡眠)
backoff_factor 是請(qǐng)求用來初始設(shè)置網(wǎng)絡(luò)連接的 urllib3 參數(shù)。
您還可以設(shè)置 backoff_factor 以增加每次嘗試的嘗試次數(shù)和休眠時(shí)間。
它將避免出現(xiàn)此錯(cuò)誤。 有了這個(gè),你就停止了這段代碼并讓它等待,直到它收到服務(wù)器的響應(yīng)。
下圖說明了 backoff_factor 如何在服務(wù)請(qǐng)求失敗時(shí)延遲服務(wù)請(qǐng)求。
#you can set a backoff factor means delay/sleep time in each retry import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry #initailize the request session request_session = requests.Session() #initailizing retry object #you can increase the number of total retires and sleep time of each retry retries = Retry(total=3, backoff_factor=1) adapter = HTTPAdapter(max_retries=retry) request_session.mount('http://', adapter) request_session.get(your_url)
根據(jù) urllib3 文檔,backoff_factor 是庫用來確定重試之間的休眠間隔的基值。
例如,在每次不成功的連接嘗試之后,urllib3 將休眠 {backoff_factor} * (2 (總重試次數(shù) - 1)) 秒。
例如,如果 backoff_factor 設(shè)置為 0.01,sleep() 將在兩次重試之間休眠 0.0s、0.2s、0.4s……。 默認(rèn)情況下退避是不活動(dòng)的(設(shè)置為 0)。
如果返回的狀態(tài)碼是500、502、503、504,會(huì)額外要求重試。 要更好地控制重試,您可以修改重試。
到此這篇關(guān)于如何在 Python 中設(shè)置請(qǐng)求的最大重試次數(shù)的文章就介紹到這了,更多相關(guān) Python設(shè)置請(qǐng)求最大重試次數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python爬蟲多次請(qǐng)求超時(shí)的幾種重試方法(6種)
- Python爬蟲庫requests-html進(jìn)行HTTP請(qǐng)求HTML解析等高級(jí)功能應(yīng)用
- Python爬蟲請(qǐng)求模塊Urllib及Requests庫安裝使用教程
- Python網(wǎng)絡(luò)請(qǐng)求使用Requests庫抓取解析數(shù)據(jù)
- Python中最強(qiáng)大的重試庫Tenacity使用探索
- 詳解Python如何優(yōu)雅的重試
- 手把手教你實(shí)現(xiàn)Python重試超時(shí)裝飾器
- Python中的請(qǐng)求重試策略深入探討
相關(guān)文章
Python多進(jìn)程multiprocessing、進(jìn)程池用法實(shí)例分析
這篇文章主要介紹了Python多進(jìn)程multiprocessing、進(jìn)程池用法,結(jié)合實(shí)例形式分析了Python多進(jìn)程multiprocessing、進(jìn)程池相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03Python?日期和時(shí)間處理教程之datetime?模塊的使用示例詳解
Python 中的日期不是獨(dú)立的數(shù)據(jù)類型,但我們可以導(dǎo)入一個(gè)名為 datetime 的模塊來使用日期作為日期對(duì)象,這篇文章主要介紹了Python?日期和時(shí)間處理教程:datetime?模塊的使用,需要的朋友可以參考下2023-10-10在Pycharm中將pyinstaller加入External Tools的方法
今天小編就為大家分享一篇在Pycharm中將pyinstaller加入External Tools的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01基于Python編寫簡(jiǎn)單的網(wǎng)絡(luò)測(cè)試工具
這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)測(cè)試工具,可以測(cè)試網(wǎng)絡(luò)的下載速度,上傳速度和延遲,感興趣的可以了解下2025-02-02Python英文文章詞頻統(tǒng)計(jì)(14份劍橋真題詞頻統(tǒng)計(jì))
這篇文章主要介紹了Python英文文章詞頻統(tǒng)計(jì)(14份劍橋真題詞頻統(tǒng)計(jì)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10