最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中關(guān)于requests里的timeout()用法

 更新時間:2023年08月17日 15:18:14   作者:fabjia  
這篇文章主要介紹了python中關(guān)于requests里的timeout()用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

關(guān)于requests里的timeout()用法

timeout(超時)

首先是:為防止服務(wù)器不能及時響應(yīng),大部分發(fā)至外部服務(wù)器的請求都應(yīng)該帶著 timeout 參數(shù)。在默認(rèn)情況下,除非顯式指定了 timeout 值,requests 是不會自動進(jìn)行超時處理的。如果沒有 timeout,你的代碼可能會掛起若干分鐘甚至更長時間

其次是:連接超時指的是在你的客戶端實現(xiàn)到遠(yuǎn)端機(jī)器端口的連接時(對應(yīng)的是 connect() ),Request 會等待的秒數(shù)。一個很好的實踐方法是把連接超時設(shè)為比 3 的倍數(shù)略大的一個數(shù)值,因為 TCP 數(shù)據(jù)包重傳窗口 (TCP packet retransmission window) 的默認(rèn)大小是 3。

在爬蟲代理這一塊我們經(jīng)常會遇到請求超時的問題,代碼就卡在哪里,不報錯也沒有requests請求的響應(yīng)。

通常的處理是在requests.get()語句中加入timeout限制請求時間

req = requests.get(url, headers=headers, proxies=proxies, timeout=5)

如果發(fā)現(xiàn)設(shè)置timeout=5后長時間不響應(yīng)問題依然存在,可以將timeout里的參數(shù)細(xì)化

作出如下修改后,問題就消失了

req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))

python requests timeout 分析

最近在搞爬蟲,很多小組件里面都使用了 Python 的 requests 庫,很好用,很強(qiáng)大。

但最近發(fā)現(xiàn)很多任務(wù)總是莫名其妙的卡住,不報錯,但是就是不繼續(xù)執(zhí)行。

排查了一圈,最后把問題鎖定在 requests timeout 機(jī)制上。

注:

本文討論的是 Python 的第三方模塊 requests ,并不是 Python 內(nèi)建模塊 urllib 中的 request 模塊,請注意區(qū)分。

如何設(shè)置超時時間

requests 設(shè)置超時時間有兩種方式。

一種是設(shè)置單一值作為 timeout,如下所示:

r = requests.get('https://github.com', timeout=5)

這時, timeout 值將會用作 connect read 二者的共同的超時時間。

另一種是分別制定連接超時和讀取超時的時間,如下所示:

r = requests.get('https://github.com', timeout=(3.05, 27))

這里前面的 3.05 表示連接超時時間, 27 表示讀取超時時間。

官方一般推薦大家把連接超時時間設(shè)置為比 3 的整數(shù)倍稍微大一點的時間,比如 3.05 、 6.05 這樣。

上面提到的兩種超時時間,連接超時和讀取超時,并不是都有默認(rèn)超時時間。

連接超時的默認(rèn)時間是 21s ,而讀取超時沒有默認(rèn)時間,換句話說,不會超時。

也就是說,如果一個請求,連接成功了,正在讀取數(shù)據(jù),但是此時服務(wù)器出現(xiàn)了什么問題,或者代理出現(xiàn)了什么問題,那么,這個請求就會一直卡住,不會報錯,也不會繼續(xù)。

天長地久。

避坑

所以,為了避免出現(xiàn)這樣的情況,給你的 requests 加上超時時間吧,尤其是請求量巨大的時候。

常在河邊走,哪有不濕鞋。

參考資料 Requests 官方文檔

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ?cmd輸入python打開微軟應(yīng)用商店的解決方法

    ?cmd輸入python打開微軟應(yīng)用商店的解決方法

    在命令控制行中輸入python想使用Python環(huán)境,卻意外打開了微軟自帶的應(yīng)用商店,十分苦惱,下面這篇文章主要給大家介紹了關(guān)于?cmd輸入python打開微軟應(yīng)用商店的解決方法,需要的朋友可以參考下
    2024-03-03
  • Python如何精準(zhǔn)判斷某個進(jìn)程是否在運(yùn)行

    Python如何精準(zhǔn)判斷某個進(jìn)程是否在運(yùn)行

    這篇文章主要為大家詳細(xì)介紹了Python如何精準(zhǔn)判斷某個進(jìn)程是否在運(yùn)行,本文為大家整理了3種方法并進(jìn)行了對比,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • python web框架Flask實現(xiàn)圖形驗證碼及驗證碼的動態(tài)刷新實例

    python web框架Flask實現(xiàn)圖形驗證碼及驗證碼的動態(tài)刷新實例

    在本篇文章里小編給大家整理的是關(guān)于python web框架Flask實現(xiàn)圖形驗證碼的相關(guān)知識點,有需要的朋友們參考下。
    2019-10-10
  • Python?隊列Queue和PriorityQueue解析

    Python?隊列Queue和PriorityQueue解析

    這篇文章主要介紹了Python?隊列Queue和PriorityQueue,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python中re.compile函數(shù)的使用方法

    Python中re.compile函數(shù)的使用方法

    這篇文章主要介紹在python的re模塊中怎樣應(yīng)用正則表達(dá)式,文中有相關(guān)的代碼示例,具有一定的參考價值,需要的朋友可以參考下
    2023-06-06
  • Python數(shù)據(jù)分析入門之?dāng)?shù)據(jù)讀取與存儲

    Python數(shù)據(jù)分析入門之?dāng)?shù)據(jù)讀取與存儲

    今天繼續(xù)帶大家學(xué)習(xí)python數(shù)據(jù)分析,下文中有非常詳細(xì)的代碼示例,清楚地解釋了python數(shù)據(jù)讀取與存儲的相關(guān)知識,需要的朋友可以參考下
    2021-05-05
  • Python讀寫操作csv和excle文件代碼實例

    Python讀寫操作csv和excle文件代碼實例

    這篇文章主要介紹了python讀寫操作csv和excle文件代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python匿名函數(shù)的實例用法

    python匿名函數(shù)的實例用法

    在本篇文章里小編給大家整理了一篇關(guān)于python匿名函數(shù)的實例用法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • python實現(xiàn)五子棋程序

    python實現(xiàn)五子棋程序

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)五子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Python?計算機(jī)視覺編程進(jìn)階之OpenCV?圖像銳化及邊緣檢測

    Python?計算機(jī)視覺編程進(jìn)階之OpenCV?圖像銳化及邊緣檢測

    計算機(jī)視覺這種技術(shù)可以將靜止圖像或視頻數(shù)據(jù)轉(zhuǎn)換為一種決策或新的表示。所有這樣的轉(zhuǎn)換都是為了完成某種特定的目的而進(jìn)行的,本篇我們來學(xué)習(xí)下如何對圖像進(jìn)行銳化處理以及如何進(jìn)行邊緣檢測
    2021-11-11

最新評論

额尔古纳市| 边坝县| 旌德县| 永修县| 班戈县| 社旗县| 永宁县| 卓资县| 津市市| 巨野县| 合阳县| 新昌县| 平舆县| 蓝山县| 阆中市| 盐城市| 哈尔滨市| 汝阳县| 钟山县| 应城市| 新蔡县| 溧水县| 土默特左旗| 且末县| 左贡县| 绥化市| 吴旗县| 临泉县| 尚义县| 安乡县| 八宿县| 太谷县| 新乡市| 昌吉市| 克山县| 祥云县| 道孚县| 绥滨县| 永城市| 中山市| 图木舒克市|