【Python】retrying模块使用场景

2023-11-11

大家在做数据抓取或者用selenium自动化进行元素定位的时候,经常遇到由于网络问题导致的抓取数据失败,或者定位元素失败。
针对这种情况,我们可以通过设置等待时间去控制,其实还有一种方法,就是使用retrying,它提供一个装饰器函数retry,被装饰的函数会在运行失败的条件下重新执行,默认只要一直报错就会不断重试。
假设我们希望从随机数1~9中得到0,意思是一直随机下去,直到生成随机数0结束。
步骤如下:
1.安装retrying模块 pip install retrying
2.具体代码如下:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_37967865
#博客:https://blog.csdn.net/sinat_37967865
#文件:retryModel.py
#日期:2018-09-22
#备注:pip install retrying  提供一个装饰器函数retry
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

import random
from retrying import retry

@retry  #提供一个装饰器函数retry,被装饰的函数就会在运行失败的条件下重新执行,默认只要一直报错就会不断重试。
def getFixRandom():
    a = random.randint(0, 10)
    if a > 0:
        print(a, "不满足要求")
        raise IOError("如果想要永远走else分支,使用raise IOError()")
    else:
        print ("必须返回为0才结束")
        print(a,"此时满足要求,结束函数")

getFixRandom()


3.retrying模块简单介绍


stop_max_attempt_number:用来设定最大的尝试次数,超过该次数就停止重试
stop_max_delay:比如设置成100,那么从被装饰的函数开始执行的时间点开始,到函数成功运行结束或者失败报错中止的时间点,只要这段时间超过0.1秒,函数就不会再执行了
wait_fixed:设置在两次retrying之间的停留时间
wait_random_min和wait_random_max:用随机的方式产生两次retrying之间的停留时间
wait_exponential_multiplier和wait_exponential_max:以指数的形式产生两次retrying之间的停留时间

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】retrying模块使用场景 的相关文章

  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 使用 Django Rest 保存 Base64ImageField 类型会将其保存为原始图像。如何将其转换为普通图像

    我的模型中有 5 个图像字段 imageS imageS imageS imageS 和 imageE 我正在尝试按以下方式保存图像 图像的类型Base64ImageField images imageA imageB imageC ima
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • django-admin.py makemessages 不起作用

    我正在尝试翻译一个字符串 load i18n trans Well Hello there how are you to Hola amigo que tal 我的 settings py 文件有这样的内容 LOCALE PATHS os
  • 如何使用 paramiko 查看(日志)文件传输进度?

    我正在使用 Paramiko 的 SFTPClient 在主机之间传输文件 我希望我的脚本打印文件传输进度 类似于使用 scp 看到的输出 scp my file user host user host password my file 1
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X

随机推荐

  • itk.js读取.nii.gz文件,vtk.js进行渲染

    我们只需要用到itk中的 readImageArrayBuffer 从这个api我们可以看出 我们需要的是一个ArrayBuffer的数据 那么 我们通过 vtk js中的vtkHttpDataAccessHelper的方法把数据转换成Ar
  • 提高接口并发量,防止崩溃

    思路 对高并发的接口 单独配置线程池 需考虑线程池内的线程数量 以及tomcat总线程数量与CPU的关系 线程池的配置 接口如何配置单独的线程池 异步任务 Async myExecutors 对实时性要求高的 分析下 实时就是同步 每一次请
  • 如何卸载FF推荐?

    很多小伙伴们都发现 近一段时间 自己的电脑中时常会弹出一个叫 FF新推荐 的广告弹窗 扰民不说显示的内容也很猥亵 按理说 电脑上开启拦截软件后 一般的广告弹窗是不会出现的 那么这个能跳过安全工具拦截的家伙是何背景 能否永久地关闭它 今天小编
  • PingCAP刘奇:如何构建一个NewSQL数据库

    PingCAP刘奇 如何构建一个NewSQL数据库 75 0 0 编者按 6月24日 由香港主办 开源社群主导的国际技术会议 香港开源年会2016 HKOSCon 在港召开 PingCAP 联合创始人兼CEO刘奇应邀出席 与大家分享了 Ho
  • [Unity小游戏]打砖块(打方块)教程(超详细)

    Unity小游戏 打砖块 打方块 超详细 打砖块小游戏通常会被当做Unity学习的第一个案例 下面给大家介绍如何实现打砖块案例的 先来张图看看效果 首先我们要知道QWER分别是选择 移动 旋转 缩放工具的快捷键 英文模式下按住才有用 只有在
  • 计算机学报——主题“区块链”,检索到25篇

    CCF期刊导航https mp weixin qq com s Hu ozQG uoYDLN0jQzUhDQhttps mp weixin qq com s Hu ozQG uoYDLN0jQzUhDQ 按时间排序 序号 篇名 时间 关键词
  • main函数的前序执行过程简单介绍

    main函数的前序执行过程简单介绍 main函数其实是我们能控制的程序入口 但是程序编译之后进行执行却不是从main函数开始的 这里主要讲解下VC6 0 下编译的程序在执行main函数之前的流程 其实主要为在执行main函数之前做了环境变量
  • 光通量发光强度照度亮度关系_买灯只选瓦数?那就大错特错了,灯具亮度选择大有学问...

    一 在装修中 灯光的选择对最终的效果有着非常大的影响 太亮会曝光刺眼 太暗效果也不好 所以选择灯具也变得非常重要了 首先 说一下影响空间亮度的因素有哪些 1 灯具数量 这个起到直接影响因素 在灯具参数一样的情况下 数量多肯定会越亮 反之同理
  • 前端需要懂的nginx

    前言 作为一名前端 我们除了node作为服务以外 我们还有什么选择 那么简单容易上手的Nginx可以满足你的一切幻想 学习nginx可以让我们更加清晰前端项目上线的整个流程 作为一个前端 或多或少都会对Nginx有一些经验 那为什么还要学习
  • ASTreeView Demo:Add, Edit & Delete nodes

  • 主从数据库一致性问题

    原因 数据库集群的主从数据同步存在延时 延迟期间从库上的读请求会读取到不一致的数据 如下图所示 不管同步还是异步 只要存在数据冗余就存在数据一致性问题 解决方案 整体思路 数据库的主从同步可以实现数据的最终一致性 延迟时间一般在几毫秒以内
  • 电路原理 的 一些基础知识

    电容 与 电感 的 伏安特性 电感的伏安特性公式 电容的伏安特性公式 电感 和 电容 元件的串并联 电感串联 电感并联 电容串联 电容并联 RC电路 的 零输入响应 和 零状态响应 零输入响应 零状态响应 RLC串联谐振电路 变压器等效电路
  • 解决问题:Do not know how to handle these types to promote: {‘DoubleTensor‘, ‘FloatTensor‘}

    今天在使用pytorch1 7训练模型 调用apex时出现了该问题 Doubletensor是64位float类型 Floattensor是32位float类型 调试程序发现第二次迭代时 变量v和msd k 的数据类型不同 如图所示 因此在
  • 微信小程序做一个文档预览

    文档预览 首先展示效果 js页面 wxml页面 首先展示效果 图片预览 视频预览 js页面 首先在data中定义变量 itemId null saveTopList 存储顶层文件列表 folderList 存储当前显示的文件列表 showL
  • MachineLearningWu_16/P72-P77_Diagnostic

    x 1 导数 计算图 大型网络 计算图就是根据链式法则求取偏导 大型网络就是多层网络堆叠而成 x 2 Diagnostic 在我们对深度学习有了一些认知后 最重要的就是模型的诊断 以带有L1正则化的线性回归为例 我们需要预测房屋的价格 此时
  • 阿里云服务器配置选择指南(2023新版教程)

    阿里云服务器配置选择 CPU内存 带宽 存储配置 小白指南 阿里云服务器配置选择方法包括云服务器类型 CPU内存 操作系统 公网带宽 系统盘存储 网络带宽选择 安全配置 监控等 阿小云分享阿里云服务器配置选择方法 选择适合自己的云服务器配置
  • 十五个Python经典案例,学会这些,Python基础已过关!

    今天给大家搜集了十五道Python的经典案例 希望各位都能学会 不懂得大家可以在加群在群里发消息问问题 想要资料的也自取 一 猜数字 1到4能组成多少个互不相同且不重复数字的三位数 分别是 分析 可填在百位 十位 个位的数字都是1 2 3
  • annie : cannot unmarshal string into go struct field multipage.aid

    用annie下载B站视频的时候 报错cannot unmarshal string into go struct field multipage aid 去项目的issue里查了一下没找到相应解决方案 然后换了个方式进入视频以后获得了一个新
  • JAVA-Word转PDF各种版本实现方式--亲测有效。。。持续更新中

    当下做一个项目 就是各种操作office 客户的需求总是各种不按常理 来需求就得搞啊 对JAVA操作office这方面真是头大 弟弟是真滴不懂不会啊 无奈只好试啊试的 网上一大堆好使的 一大堆不好使的 整了一大堆word转PDF的方法 但是
  • 【Python】retrying模块使用场景

    大家在做数据抓取或者用selenium自动化进行元素定位的时候 经常遇到由于网络问题导致的抓取数据失败 或者定位元素失败 针对这种情况 我们可以通过设置等待时间去控制 其实还有一种方法 就是使用retrying 它提供一个装饰器函数retr