我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python requests timeout的设置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python requests timeout的设置

背景

最近在搞爬虫,很多小组件里面都使用了 Python 的 requests 库,很好用,很强大。

但最近发现很多任务总是莫名其妙的卡住,不报错,但是就是不继续执行。

排查了一圈,最后把问题锁定在 requests 的 timeout 机制上。

注:本文讨论的是 Python 的第三方模块 requests,并不是 Python 内建模块 urllib 中的 request 模块,请注意区分。

如何设置超时时间

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 的整数倍稍微大一点的时间,比如 3.05、6.05 这样,具体原因见 这里。


上面提到的两种超时时间,连接超时和读取超时,并不是都有默认超时时间。

连接超时的默认时间是 21s,而读取超时没有默认时间,换句话说,不会超时。

也就是说,如果一个请求,连接成功了,正在读取数据,但是此时服务器出现了什么问题,或者代理出现了什么问题,那么,这个请求就会一直卡住,不会报错,也不会继续。

天长地久。

避坑

所以,为了避免出现这样的情况,给你的 requests 加上超时时间吧,尤其是请求量巨大的时候。

常在河边走,哪有不湿鞋。

参考资料

Requests 官方文档

补:python requests timeout不起作用 卡死

在使用python 的requests进行数据请求时不设置timeout大部分时候,是会有超时异常的,超时时间大概是20多秒

但是有时候超时会不起作用需要自己制定超时时间,使用timeout=60


response = requests.get(url, headers=headers, proxies=proxies,timeout=60)

但是有时候设置此参数之后仍然会有几分钟甚至是十几分钟没有返回结果可以使用timeout=(50, 60)

timeout参数也可以传入一个包含两个简单浮点数的元组,用来分别设置请求超时时间和读取超时时间。


response = requests.get(url, headers=headers, proxies=proxies,timeout=(50, 60))

到此这篇关于Python requests timeout的设置的文章就介绍到这了,更多相关Python requests timeout内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python requests timeout的设置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中怎么设置requests代理

这期内容当中小编将会给大家带来有关Python中怎么设置requests代理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。requests设置代理import requestsproxies = {htt
2023-06-02

requests-代理设置,超时设置,登陆验证,Prepared Requests

对于某些网站,大规模频繁请求,网站可能会弹出验证码,或者跳转到登陆认证页面,甚至可能会被直接封客户端ip,导致短时间内无法访问,这个时候就需要用到代理ip。requests是能解决这个问题的,需要用到proxies参数,示例如下:impor
2023-01-30

redis timeout参数怎么设置

在Redis中,可以通过设置timeout参数来控制连接的超时时间。timeout参数表示Redis服务器在接收到客户端的连接请求后,在多长时间内没有收到客户端发送的命令,就会关闭连接。timeout参数的单位是秒。要设置timeout参
redis timeout参数怎么设置
2024-03-15

requests上传文件Cookies设置

有的网站需要上传文件,requests也是可以实现的importrequestsfiles={file:open(favicon.ico,rb)}r=requests.post(http://httpbin.org/post,files=f
2023-01-30

JavaSocket设置timeout的几种常用方式说明

这篇文章主要介绍了JavaSocket设置timeout的几种常用方式说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

python的requests库和url

python中有多种库可以用来处理http请求,比如python的原生库:urllib包、requests类库。urllib和urllib2是相互独立的模块,python3.0以上把urllib和urllib2合并成一个库了,request
2023-01-31

Python中线程Timeout的使用

Python中关于Timeout有另一种用起来更简便的方法,即使用装饰器。这种方式是使用sys模块的settrace等方法重构了python的threading类:#!/usr/bin/pythonimport threadingimpor
2023-01-31

Python之requests的使用(二)

上一篇我们说了requests的简单用法,知道了如何发送请求,今天我们更深层次的来学习requests。我们看看高级一点的操作,比如讲文件上传,cookies设置,代理设置之类的。感兴趣的同学可以参考阅读
2023-05-15

python模块requests的安装

1.到requests的官网下载包,2.取包名为requests-2.12.4.tar.gz下载并解压到本地3.cmd,切换到其目录下,python setup.py install4.cmd,python,import requests,
2023-01-31

Python中子进程Timeout的使用

Python中并没有Timeout模块,但是在程序中经常遇到需要超时控制的情况。    有两种思路去实现这种Timeout,其一是将需要做超时处理的代码块作为一个独立的子进程来处理,可将其另做一个包含main函数的.py文件。然后使用子进程
2023-01-31

python中timeout的用法是什么

timeout参数是在调用某些函数时设置一个时间限制,如果函数在指定时间内没有执行完成,就会抛出一个TimeoutError异常。这个参数通常用在需要等待一段时间才能得到结果的函数调用中,例如网络请求、文件读取等操作。例如,在使用requ
python中timeout的用法是什么
2024-03-11

Python之requests的使用(一)

requests是一个很实用的PythonHTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的库,专门用于发送HTTP请求,使用起来比urllib简洁很多,这篇文章主要介绍requests的基础用法
2023-05-15

tomcat timeout配置的方法是什么

Tomcat的超时配置方法取决于您希望配置的超时类型。以下是一些常用的超时配置方法:1. 连接超时配置:配置连接超时时间,即等待客户端建立连接的时间。在 Tomcat 的 server.xml 文件中,可以使用 `connectionTim
2023-09-29

python的requests模块实现登

51cto用python的requests模块实现登陆示例代码如下:-- coding:utf-8 --import requestsimport reclient = requests.session()agent = "Mozilla/
2023-01-31

Python爬虫之Requests库的基

1 import requests 2 response = requests.get('http://www.baidu.com/') 3 print(type(response)) 4 print(response.status_
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录