欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python requests請求超時(shí)的解決方案

 更新時(shí)間:2024年12月17日 09:38:03   作者:IT之一小佬  
在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)爬取過程中,網(wǎng)絡(luò)請求超時(shí)是一個(gè)令人頭疼的問題,尤其在Python中,我們常常需要應(yīng)對各種網(wǎng)絡(luò)爬蟲、API調(diào)用或其他網(wǎng)絡(luò)操作,而網(wǎng)絡(luò)請求超時(shí)的原因千奇百怪,在本篇文章中,我們將深入探討Python requests請求超時(shí)的解決方案,需要的朋友可以參考下

python程序根據(jù)url從互聯(lián)網(wǎng)上批量獲取數(shù)據(jù)時(shí),設(shè)置HTTP或Socket超時(shí),來防止爬蟲爬取某個(gè)頁面時(shí)間過長,導(dǎo)致程序卡置不前。

1、socket

全局設(shè)置。

import socket
 
socket.setdefaulttimeout(1)

t:代表經(jīng)過t秒后,如果還未下載成功,自動(dòng)跳入下一次操作,此次下載失敗 。

2、添加timeout

使用timeout 參數(shù)可以設(shè)定等待連接的秒數(shù),如果等待超時(shí),Requests會拋出異常。

示例代碼1:

import requests
 
res = requests.get('https://github.com', timeout=0.01)
print(res)

運(yùn)行結(jié)果:

示例代碼2:

import requests
 
res = requests.get('https://github.com', timeout=10)
print(res)

運(yùn)行結(jié)果: 

注意:timeout 僅對連接過程有效,與響應(yīng)體的下載無關(guān)。 timeout 并不是整個(gè)下載響應(yīng)的時(shí)間限制,而是如果服務(wù)器在 timeout 秒內(nèi)沒有應(yīng)答,將會引發(fā)一個(gè)異常(更精確地說,是在 timeout 秒內(nèi)沒有從基礎(chǔ)套接字上接收到任何字節(jié)的數(shù)據(jù)時(shí))。

3、HTTPAdapter(max_retries=3)重試

示例代碼:

import time
import requests
from requests.adapters import HTTPAdapter
 
 
s = requests.Session()
s.mount('http://', HTTPAdapter(max_retries=3))
s.mount('https://', HTTPAdapter(max_retries=3))
 
print(time.strftime('%Y-%m-%d %H:%M:%S'))
 
try:
    res = s.get('https://github.com', timeout=2)
    print(res)
except requests.exceptions.RequestException as e:
    print(e)
 
print(time.strftime('%Y-%m-%d %H:%M:%S'))

運(yùn)行結(jié)果:

注意:max_retries 為最大重試次數(shù),重試3次,加上最初的一次請求,一共是4次,所以上述代碼運(yùn)行耗時(shí)至少是8秒而不是6秒。

4、捕捉異常

示例代碼1:

import requests
 
 
def get_html(url, timeout=5):
    i = 0
    while i < 3:
        try:
            html = requests.get(url, timeout=timeout)
            return html.text
        except requests.exceptions.RequestException as e:
            i += 1
            print(e)
 
 
res = get_html('https://github.com', timeout=0.1)
print(res)

運(yùn)行結(jié)果:

示例代碼2:  【試圖提大timeout的值】

import requests
 
 
def get_html(url, timeout=5):
    i = 0
    while i < 3:
        try:
            html = requests.get(url, timeout=timeout)
            return html.text
        except requests.exceptions.RequestException as e:
            i += 1
            print(e)
 
 
res = get_html('https://github.com', timeout=10)
print(res)

運(yùn)行結(jié)果:

到此這篇關(guān)于Python requests請求超時(shí)的解決方案的文章就介紹到這了,更多相關(guān)Python requests請求超時(shí)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python?密碼驗(yàn)證(滑塊驗(yàn)證)

    python?密碼驗(yàn)證(滑塊驗(yàn)證)

    滑塊密碼在很多登錄界面都可以看到,本文主要介紹了python?密碼驗(yàn)證(滑塊驗(yàn)證),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python中關(guān)于浮點(diǎn)數(shù)的冷知識

    Python中關(guān)于浮點(diǎn)數(shù)的冷知識

    這篇文章主要給大家介紹了Python中關(guān)于浮點(diǎn)數(shù)的冷知識,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 對Python Class之間函數(shù)的調(diào)用關(guān)系詳解

    對Python Class之間函數(shù)的調(diào)用關(guān)系詳解

    今天小編就為大家分享一篇對Python Class之間函數(shù)的調(diào)用關(guān)系詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 如何用Python繪制棒棒糖圖表

    如何用Python繪制棒棒糖圖表

    這篇文章主要介紹了如何用Python繪制棒棒糖圖表,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • Python常見的錯(cuò)誤以及其解決方案

    Python常見的錯(cuò)誤以及其解決方案

    這篇文章主要給大家介紹了關(guān)于Python常見的錯(cuò)誤以及其解決方案的相關(guān)資料,學(xué)習(xí)python任重而道遠(yuǎn),對于初學(xué)者來說,最難受的就是報(bào)錯(cuò),本文總結(jié)了一些常見錯(cuò)誤,需要的朋友可以參考下
    2023-08-08
  • 詳解python中遞歸函數(shù)

    詳解python中遞歸函數(shù)

    這篇文章主要介紹了python遞歸函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例

    Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例

    這篇文章主要介紹了Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 一篇文章從零開始創(chuàng)建conda環(huán)境、常用命令的使用及pycharm配置項(xiàng)目環(huán)境

    一篇文章從零開始創(chuàng)建conda環(huán)境、常用命令的使用及pycharm配置項(xiàng)目環(huán)境

    在Conda中創(chuàng)建新環(huán)境是一個(gè)非常有用的做法,尤其是當(dāng)你需要為不同的項(xiàng)目安裝不同版本的軟件包時(shí),這篇文章主要給大家介紹了關(guān)于從零開始創(chuàng)建conda環(huán)境、常用命令的使用及pycharm配置項(xiàng)目環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • Python實(shí)現(xiàn)調(diào)度算法代碼詳解

    Python實(shí)現(xiàn)調(diào)度算法代碼詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)調(diào)度場算法代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • python列表與列表算法詳解

    python列表與列表算法詳解

    這篇文章主要介紹了Python的列表和列表算法,具有一定參考價(jià)值,需要的朋友可以了解下,希望能給你帶來幫助
    2021-08-08

最新評論