python3 requests出错重试解决方法

对python3下的requests使用并不是很熟练,今天稍微用了下,请求几次下来后发现出现连接超时的异常,上网查了下,找到了一个还算中肯的解决方法。

retrying是python的一个自带的重试包

导入方式:

from retrying import retry
简单使用

retrying 这个包的用法原理就是在你不知道那段代码块是否会发生异常,若发生异常,可以再次执行该段的代码块,如果没有发生异常,那么就继续执行往下执行代码块

以前你的代码可能是这样写的:

def get_html(url):
 pass

def log_error(url):
 pass

url = ""
try:
 get_page(url)
except:
 log_error(url)

也有可能是这样子写的:

# 请求超过十次就放弃
attempts = 0
success = False
while attempts < 10 and not success:
 try:
  get_html(url)
  success = True
 except:
  attempts += 1
  if attempts == 10:
   break

使用 retrying 的写法:

import random
from retrying import retry

@retry()
def do_something_unreliable():
 if random.randint(0, 10) > 1:
  raise IOError("Broken sauce, everything is hosed!!!111one")
 else:
  return "Awesome sauce!"

result = do_something_unreliable()
print(result)

上面的是简单的用法,你可以试下,下面是一些可选参数的使用方式。

  • stop_max_attempt_number
    用来设定最大的尝试次数,超过该次数就停止重试
  • stop_max_delay
    超过时间段,函数就不会再执行了
  • wait_random_min和wait_random_max
    用随机的方式产生两次retrying之间的停留时间

更多的API可以访问python官网 https://www.python.org/

————————————— 下面是广告 ————————————————

个人微信:hll643435675(备注:博客)

更多资源请访问:

https://blog.csdn.net/xudailong_blog/article/details/78762262

小密圈精品源码根据地

欢迎光临我的小网站:http://www.00reso.com

欢迎光临这个妹子的SEO优化网站:http://www.ltc622.com/

陆续优化中,后续会开发更多更好玩的有趣的小工具

————————————— 上面是广告 ————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值