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

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

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

關于requests里的timeout()用法

timeout(超時)

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

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

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

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

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

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

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

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

python requests timeout 分析

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

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

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

注:

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

如何設置超時時間

requests 設置超時時間有兩種方式。

一種是設置單一值作為 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 表示讀取超時時間。

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

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

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

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

天長地久。

避坑

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

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

參考資料 Requests 官方文檔

總結

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

相關文章

  • Python編程matplotlib繪圖挑鉆石seaborn小提琴和箱線圖

    Python編程matplotlib繪圖挑鉆石seaborn小提琴和箱線圖

    這篇文章主要為大家介紹了Python編程如何使用matplotlib繪圖來挑出完美的鉆石以及seaborn小提琴和箱線圖,有需要的朋友可以借鑒參考下,希望能夠優(yōu)速幫助
    2021-10-10
  • Pycharm調試程序技巧小結

    Pycharm調試程序技巧小結

    這篇文章主要介紹了Pycharm調試程序技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • numpy下的flatten()函數(shù)用法詳解

    numpy下的flatten()函數(shù)用法詳解

    這篇文章主要介紹了numpy下的flatten()函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 利用Python內置庫實現(xiàn)創(chuàng)建命令行應用程序

    利用Python內置庫實現(xiàn)創(chuàng)建命令行應用程序

    Python?有一個叫做argparse的內置庫,可以用它來創(chuàng)建一個命令行界面。本文將詳解如何利用argparse實現(xiàn)創(chuàng)建一個命令行應用程序,需要的可以參考一下
    2022-06-06
  • python實現(xiàn)sqlalchemy的使用概述

    python實現(xiàn)sqlalchemy的使用概述

    SQLAlchemy是Python中最有名的ORM工具,特點是操縱Python對象而不是SQL查詢,也就是在代碼層面考慮的是對象,而不是SQL,體現(xiàn)的是一種程序化思維,這樣使得Python程序更加簡潔易懂,具體內容詳情跟隨小編一起看看吧
    2021-08-08
  • Python發(fā)送郵件功能示例【使用QQ郵箱】

    Python發(fā)送郵件功能示例【使用QQ郵箱】

    這篇文章主要介紹了Python發(fā)送郵件功能,結合實例形式分析了Python使用QQ郵箱進行郵件發(fā)送的相關設置與使用技巧,需要的朋友可以參考下
    2018-12-12
  • Python圖片裁剪實例代碼(如頭像裁剪)

    Python圖片裁剪實例代碼(如頭像裁剪)

    本篇文章主要介紹了Python圖片裁剪實例代碼(如: 頭像裁剪),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Python基于PycURL自動處理cookie的方法

    Python基于PycURL自動處理cookie的方法

    這篇文章主要介紹了Python基于PycURL自動處理cookie的方法,實例分析了Python基于curl操作cookie的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python中的隨機數(shù)種子seed()用法說明

    python中的隨機數(shù)種子seed()用法說明

    這篇文章主要介紹了python中的隨機數(shù)種子seed()用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python實現(xiàn)高效的遺傳算法

    python實現(xiàn)高效的遺傳算法

    這篇文章主要介紹了python實現(xiàn)高效的遺傳算法。想了解算法的同學,可以參考下
    2021-04-04

最新評論