知识点讲解三:关于requests里的timeout()
时间:2022-06-17
本文章向大家介绍知识点讲解三:关于requests里的timeout(),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
超时(timeout)
为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着 timeout 参数。在默认情况下,除非显式指定了 timeout 值,requests 是不会自动进行超时处理的。如果没有 timeout,你的代码可能会挂起若干分钟甚至更长时间。
连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是 connect() ),Request 会等待的秒数。一个很好的实践方法是把连接超时设为比 3 的倍数略大的一个数值,因为 TCP 数据包重传窗口 (TCP packet retransmission window) 的默认大小是 3。
在爬虫代理这一块我们经常会遇到请求超时的问题,代码就卡在哪里,不报错也没有requests请求的响应。
通常的处理是在requests.get()语句中加入timeout限制请求时间
req = requests.get(url, headers=headers, proxies=proxies, timeout=5)
如果发现设置timeout=5后长时间不响应问题依然存在,可以将timeout里的参数细化 作出如下修改后,问题就消失了
req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))
如果在使用timeout过程中遇到ValueError错误提示(类似:ValueError: Timeout value connect was Timeout(connect=2.0, read=2.0, total=None), but it must be an int or float. ),这是python-requests version 2.4.3-4版本的一个bug需要我们更新一下requests
pip install -U requests
对于timeout=(3,7)中参数的具体含义我也不是很清楚,知道含义的童鞋可以留言哈
- UIPickView的简单使用
- java开发中几种常见的线程池
- 传统多线程之前如何共享数据
- Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
- 调整渐变下降的学习率
- 多线程之传统多线程
- ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
- Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
- 云原生应用的12要素
- Universal-Image-Loader源码分析,及常用的缓存策略
- ios textView跟随键盘的移动
- Android:屏保软件的开发
- CoordinatorLayout
- 从零开始的Spring Security Oauth2(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java编程思想第四版第三章要点总结
- 05 . Prometheus监控Nginx
- java编程思想第四版第五章总结
- 01 . 容器编排简介及Kubernetes核心概念
- java编程思想第四版第五章习题
- 02 . Kubeadm部署Kubernetes及简单应用
- java编程思想第四版第六章习题
- Docker部署Python项目
- 03 . 二进制部署kubernetes1.18.4
- 01 . 美团全链路监控CAT简介及部署
- 02 . Ansible高级用法(运维开发篇)
- java编程思想第四版第七章总结
- OpenVPN原理及部署使用
- 04 . Jenkins部署Java项目
- java编程思想第四版第七章习题