这不仅会改变最大重试次数,而且还会启用回退策略,使所有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设置最大重试次数吗?相关推荐

  1. anaconda的python环境变量_装了anaconda之后如何设置anaconda、python环境变量

    装了anaconda之后如何设置anaconda.python环境变量 1.装了anaconda之后如何设置anaconda环境变量 参考 https://www.cnblogs.com/avivi/ ...

  2. python requests 重定向_认识Python最最最常用语重要的库Requests

    Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.下面我们来认识这个库 Requests requests是Python最为常用的http请求库,也是极其简单的.使用 ...

  3. python安装包之后仍提示_解决已经安装requests,却依然提示No module named requests问题...

    Python版本3.5.1, pip install requests 之后依然提示 Python ImportError: No module named 'requests' 经过文件搜索和提示, ...

  4. python爬虫 被重定向_爬虫篇 | 认识Python最最最常用语重要的库Requests

    最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍. 爬虫篇 | Python爬虫学前普及 基础篇 | Python基 ...

  5. 嵩天python爬虫百度云盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...

    1.requests库入门 requests的get( )方法 在这里插入图片描述 爬取百度网页实例: import requests r = requests.get("http://ww ...

  6. python页面调用接口_python调用接口——requests模块

    前提:安装pip install requests 导入import requests 1.get请求   result=requests.get(url,d).json()  或  .text 2. ...

  7. python爬虫requests-Python爬虫(三)Requests库

    什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库.与urllib相比,Requests更加方便,可以节约 ...

  8. python3 爬虫 requests安装_爬虫开发环境部署

    欲善其事必先利其器 提起爬虫我们首先就会想到python,虽然其他的语言也可以做出爬虫,但是都没有python方便,python有许多第三方库可以为我们所用,所以我们会以python的角度学习爬虫. ...

  9. python之爬虫(四)之 Requests库的基本使用

    什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 如果你看过上篇文章关于urllib库的使用,你会发现, ...

最新文章

  1. linux查看服务依赖关系,服务管理(1)
  2. vc 递归删除非空文件夹
  3. mingw编译boost_1_66_0
  4. 简单有趣的 NLP 教程:手把手教你用 PyTorch 辨别自然语言(附代码)
  5. 谈VHDL/Verilog的可综合性以及对初学者的一些建议
  6. 批量导入数据到mssql数据库的
  7. Pytorch MNIST直接离线加载二进制文件到pytorch
  8. 盛严谨,严谨,再严谨。_评估员工调查的统计严谨性
  9. SpringBoot声明式事务
  10. 【软件质量】ISO-9126质量模型
  11. window safari 怎么进入响应式_响应式网站怎么做?模板教程来了
  12. 面试稳了!集齐几千名程序员精选的 100 道前端面试题!
  13. [转载] python数字类型(一)
  14. 【复杂网络】网络科学导论学习笔记-第四章度相关性和社团结构
  15. 雷电模拟器Android obb,exagear模拟器数据obb包
  16. bzoj 3039 玉蟾宫 单调栈
  17. 只会写代码的程序员不是好程序员
  18. 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
  19. 芯片PIC32MZ1024ECH100 (MCHP) -- 32位高性能单片机 up to 330 DMIPS
  20. 关于拦截器与过滤器使用场景、拦截器与过滤器的区别整理

热门文章

  1. RabbitMQ六种队列模式-工作队列模式
  2. 时隔多日,旧域名重用,niceyoo博客上线
  3. mongoose 更新元素 DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany
  4. 怎么把数据文件上传云服务器,怎么把数据上传导云服务器
  5. php进程状态进度,PHP监控进程状态,完成掉线自动重启
  6. LeetCode刷题过程中的一些小tips
  7. Eclipse里git提交冲突rejected – non-fast-forward
  8. 1020 月饼 (25分)
  9. 第二章 findxargs
  10. java log4j 配置_Java:log4j与log4j.properties的配置说明