python requests 重试_我可以为requests.request设置最大重试次数吗?
这不仅会改变最大重试次数,而且还会启用回退策略,使所有http://地址在重试前睡眠一段时间(总共5次):import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
s = requests.Session()
retries = Retry(total=5,
backoff_factor=0.1,
status_forcelist=[ 500, 502, 503, 504 ])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.get('http://httpstat.us/500')
根据documentation for ^{}:如果回退因子为0.1,则sleep()将在重试之间睡眠[0.1s、0.2s、0.4s,…]。如果返回的状态代码是500,502,503或504,则还将强制重试。
其他各种Retry选项允许更细粒度的控制:total–允许的重试总数。
connect–要重试的连接相关错误数。
read–读取错误时重试多少次。
重定向-要执行的重定向数。
method_whitelist–一组大写的HTTP方法动词,我们应该重试。
status_forcelist–一组我们应该强制重试的HTTP状态代码。
退避系数-在两次尝试之间应用的退避系数。
raise_on_redirect–如果重定向数已用尽,是引发一个MaxRetryError,还是返回一个响应代码在3xx范围内的响应。
raise_on_status–类似于raise_on_redirect的含义:如果状态落在status_forcelist范围内,并且重试次数已用尽,则是否应引发异常或返回响应。
NB:raise-on-u status是一个相对较新的版本,尚未发布urllib3或请求。raise-on-u status关键字参数似乎已使其在python 3.6版本中最多进入标准库。
要在特定的HTTP状态代码上重试请求,请使用status-forcelist。例如,状态强制列表=[503]将在状态代码503上重试(服务不可用)。
默认情况下,重试仅在以下情况下触发:无法从池中获取连接。
TimeoutError
HTTPException提升(在Python 3 elsehttplib中从http.client开始)。
这似乎是低级HTTP异常,如URL或protocol not
形状正确。
SocketError
ProtocolError
注意,这些都是阻止接收常规HTTP响应的异常。如果生成任何常规响应,则不执行重试。如果不使用状态强制列表,即使是状态为500的响应也不会重试。
为了使其以更直观的方式操作远程API或web服务器,我将使用上面的代码片段,它强制在状态500,502,503和504上重试,所有这些状态在web上并不少见,并且(可能)在足够长的退避期内可以恢复。
编辑的:直接从urllib3导入{}类。
python requests 重试_我可以为requests.request设置最大重试次数吗?相关推荐
- anaconda的python环境变量_装了anaconda之后如何设置anaconda、python环境变量
装了anaconda之后如何设置anaconda.python环境变量 1.装了anaconda之后如何设置anaconda环境变量 参考 https://www.cnblogs.com/avivi/ ...
- python requests 重定向_认识Python最最最常用语重要的库Requests
Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.下面我们来认识这个库 Requests requests是Python最为常用的http请求库,也是极其简单的.使用 ...
- python安装包之后仍提示_解决已经安装requests,却依然提示No module named requests问题...
Python版本3.5.1, pip install requests 之后依然提示 Python ImportError: No module named 'requests' 经过文件搜索和提示, ...
- python爬虫 被重定向_爬虫篇 | 认识Python最最最常用语重要的库Requests
最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍. 爬虫篇 | Python爬虫学前普及 基础篇 | Python基 ...
- 嵩天python爬虫百度云盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...
1.requests库入门 requests的get( )方法 在这里插入图片描述 爬取百度网页实例: import requests r = requests.get("http://ww ...
- python页面调用接口_python调用接口——requests模块
前提:安装pip install requests 导入import requests 1.get请求 result=requests.get(url,d).json() 或 .text 2. ...
- python爬虫requests-Python爬虫(三)Requests库
什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库.与urllib相比,Requests更加方便,可以节约 ...
- python3 爬虫 requests安装_爬虫开发环境部署
欲善其事必先利其器 提起爬虫我们首先就会想到python,虽然其他的语言也可以做出爬虫,但是都没有python方便,python有许多第三方库可以为我们所用,所以我们会以python的角度学习爬虫. ...
- python之爬虫(四)之 Requests库的基本使用
什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 如果你看过上篇文章关于urllib库的使用,你会发现, ...
最新文章
- linux查看服务依赖关系,服务管理(1)
- vc 递归删除非空文件夹
- mingw编译boost_1_66_0
- 简单有趣的 NLP 教程:手把手教你用 PyTorch 辨别自然语言(附代码)
- 谈VHDL/Verilog的可综合性以及对初学者的一些建议
- 批量导入数据到mssql数据库的
- Pytorch MNIST直接离线加载二进制文件到pytorch
- 盛严谨,严谨,再严谨。_评估员工调查的统计严谨性
- SpringBoot声明式事务
- 【软件质量】ISO-9126质量模型
- window safari 怎么进入响应式_响应式网站怎么做?模板教程来了
- 面试稳了!集齐几千名程序员精选的 100 道前端面试题!
- [转载] python数字类型(一)
- 【复杂网络】网络科学导论学习笔记-第四章度相关性和社团结构
- 雷电模拟器Android obb,exagear模拟器数据obb包
- bzoj 3039 玉蟾宫 单调栈
- 只会写代码的程序员不是好程序员
- 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
- 芯片PIC32MZ1024ECH100 (MCHP) -- 32位高性能单片机 up to 330 DMIPS
- 关于拦截器与过滤器使用场景、拦截器与过滤器的区别整理
热门文章
- RabbitMQ六种队列模式-工作队列模式
- 时隔多日,旧域名重用,niceyoo博客上线
- mongoose 更新元素 DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany
- 怎么把数据文件上传云服务器,怎么把数据上传导云服务器
- php进程状态进度,PHP监控进程状态,完成掉线自动重启
- LeetCode刷题过程中的一些小tips
- Eclipse里git提交冲突rejected – non-fast-forward
- 1020 月饼 (25分)
- 第二章 findxargs
- java log4j 配置_Java:log4j与log4j.properties的配置说明