python自动重试第三方包retrying
程序员文章站
2022-03-31 23:18:01
最近写了一个爬虫,需要连接国外的一个网站,经常出现掉线的情况,自己写了一个自动重连的代码,但感觉不够简洁。。。 后来就上万能的github,找到了一个第三包,基本能满足我的要求。这个第三方包就是retrying. 我的需求就是每当出现request相关异常的时候,就自动重来,上限连接10次;使用代码 ......
最近写了一个爬虫,需要连接国外的一个网站,经常出现掉线的情况,自己写了一个自动重连的代码,但感觉不够简洁。。。
后来就上万能的github,找到了一个第三包,基本能满足我的要求。这个第三方包就是retrying.
我的需求就是每当出现request相关异常的时候,就自动重来,上限连接10次;使用代码如下:
1 from retrying import retry 2 3 def is_request_exception(e): 4 return issubclass(type(e),RequestException) 5 6 @retry(retry_on_exception=is_request_exception,wrap_exception=False, stop_max_attempt_number=10) 7 def request_get(url, timeout=120): 8 return requests.get(url, timeout=120)
刚开始用的时候,也遇到一些坑,就是在request_get用了try..except,导致不成功。后来删除就可以了。。。
我理解,在retring包中,已经有exception处理了,如果你的代码中有了exception处理,retring就没有捕获异常,就没法达到期望的结果了。
retrying还有非常多的自定义参数,如果等待时长控制,总共等待时间控制等等,暂时还没有这么特别的要求,等需要的时候,我再去研究一下。
上一篇: 8.QT-对话框(模态与非模态)
下一篇: 如何预防癌症 8个方法防止胃癌发生
推荐阅读
-
Python自动重试HTTP连接装饰器
-
python自动化测试之连接几组测试包实例
-
Python3 关于pycharm自动导入包快捷设置的方法
-
Python之虚拟环境virtualenv、pipreqs生成项目依赖第三方包
-
记录安装Python第三方包“tesserocr”的方法和遇到的坑
-
python项目1:自动解压并删除压缩包
-
JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案
-
Python安装第三方包(模块/工具)出现链接超时,网速慢,安装不上的问题如何解决
-
Python自动重试HTTP连接装饰器
-
在MAC上用Python第三方包you-get或youtube-dl下载视频