文章目录

  • 背景
  • 如何设置超时时间
  • 避坑
  • 参考资料

背景

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

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

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

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

如何设置超时时间

requests 设置超时时间有两种方式。

一种是设置单一值作为 timeout,如下所示:

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

这时, timeout 值将会用作 connectread 二者的共同的超时时间。

另一种是分别制定连接超时和读取超时的时间,如下所示:

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

这里前面的 3.05 表示连接超时时间,27 表示读取超时时间。

官方一般推荐大家把连接超时时间设置为比 3 的整数倍稍微大一点的时间,比如 3.056.05 这样,具体原因见 这里。

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

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

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

天长地久。

避坑

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

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

参考资料

  • Requests 官方文档

Python requests timeout 分析相关推荐

  1. Python Requests库源码分析

    1. Requests库简介 书籍是人类进步的阶梯,源码是程序员进步的阶梯.为了进步,我们就要不断地阅读源码,提升自己的技术水平.今天我们来剖析一下Python的Requests库. Requests ...

  2. python requests 异步调用_构建高效的python requests长连接池详解

    前文: 最近在搞全网的CDN刷新系统,在性能调优时遇到了requests长连接的一个问题,以前关注过长连接太多造成浪费的问题,但因为系统都是分布式扩展的,针对这种各别问题就懒得改动了. 现在开发的缓存 ...

  3. python+requests接口自动化测试框架实例详解教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  4. python可视化来分析全国疫情

    很长一段时间在python下出图都是使用matplotlib,其好处就是应用比较广泛,文档很容易找,不过出的图微显丑陋.pyecharts 是百度的echarts基于python的实现,可以很方便的直 ...

  5. Python requests模块相关接口

    2019独角兽企业重金招聘Python工程师标准>>> 主要接口 Requests 所有的功能都可以通过以下 7 个方法访问.它们全部都会返回一个 Response 对象的实例. r ...

  6. python+requests接口自动化测试框架实例详解教程(米兔888)

    来源:https://my.oschina.net/u/3041656/blog/820023 源码:https://pan.baidu.com/s/1lgIEToiczTvvjy--p-N20g 提 ...

  7. python requests 示例_Python Requests模块的简单示例

    这篇文章主要为大家详细介绍了Python Requests模块的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  8. python requests库作用_python Requests库入门

    一.Requests 库的安装 对Requests库 了解更多请移步:http://www.python-requests.org 安装操作: win平台:"以管理员身份运行" c ...

  9. 用python进行营销分析_用python进行covid 19分析

    用python进行营销分析 Python is a highly powerful general purpose programming language which can be easily l ...

  10. Python requests介绍之接口介绍

    Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...

最新文章

  1. 创建细分客户的无监督学习项目
  2. JMeter Listeners - Part 2: Listeners that Aggregate Data Samples
  3. PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
  4. 水箱建模最小二乘法_北师大版小学数学下册五年级第四单元长方体(二)整理复习电子课本练习同步教学视频...
  5. Android中MVC、MVP、MVVM具体解释
  6. 条款4:确定对象被使用前已被初始化(Make sure that objects are initialized before they're used)...
  7. 2.原子变量 CAS算法
  8. JavaScript框架从入门到精通
  9. zuc算法代码详解_密码学算法之序列密码中的ZUC算法详解
  10. Japanese Student Championship 2021
  11. python明文密文_「每日一练」Python实现明文和密文的输入
  12. python画xy轴_python画双y轴图像的示例代码
  13. linux 系统qcow2镜像制作
  14. 如何添加扩展程序(到chrome
  15. linux蓝牙传送的文件存放,嵌入式蓝牙文件传送方案的实现
  16. 用stitching_detailed拼接图片失败,原因分析(待补充)
  17. 802.11无线网络权威——(三、MAC基础)
  18. 广大程序员不要做外包
  19. linux关机命令60秒,Linux关机重启命令有哪些用法
  20. UniApp IOS证书申请和注意事项

热门文章

  1. 【装机】关于WINRE/ESP/LRS_ESP/MSR/PBR这些分区
  2. iOS活体人脸识别的Demo和一些思路
  3. 社交网络电影深度解析论文,社交网络 电影解析
  4. 基于labview的打地鼠游戏制作
  5. 任正非自称不如钱伯斯!钱伯斯究竟是何许人?
  6. mysql轮播图表设计_制作一个简单的轮播图
  7. c语言char类型怎么输出,c语言中char类型数组的输出问题--输出时为何需要符?...
  8. 上帝的归上帝 凯撒的归凯撒
  9. 数据库查询语句内连接外连接效率
  10. android drm框架分析,如何使用android.drm框架