Python中requests的timeout机制的设置是怎样的
Admin 2022-07-08 群英技术资讯 1942 次浏览
在实际应用中,我们有时候会遇到“Python中requests的timeout机制的设置是怎样的”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“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大部分时候,是会有超时异常的,超时时间大概是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))
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python文件及目录处理的方法,Python可以用于处理文本文件和二进制文件,比如创建文件、读写文件等操作。本文介绍Python处理目录以及文件的相关资料,需要的朋友可以参考一下
这篇文章主要是和大家一起探索python中的时间处理函数,让大家彻底弄懂时间处理。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
本文主要介绍了TensorFlow训练网络两种方式,一种是基于tensor(array),另外一种是迭代器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
pip 是一个现代的、通用的安装和管理 Python 包的工具,这意味着它是一个工具,允许你安装和管理不属于标准库的其他库和依赖。
这篇文章主要介绍了Python使用描述符实现属性类型检查,实例属性就是在一个类中将另一个类的实例作为该类的一个数属性,本文通过代码演示给大家介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008