【python 装饰器 - 重试】做一个简易重试装饰器,如果函数执行错误则会自动重新执行,可设置重试次数,对爬虫比较友好

文章日期:2024.03.19

使用工具:Python

类型:装饰器

文章全程已做去敏处理!!!  【需要做的可联系我】

AES解密处理(直接解密即可)(crypto-js.js 标准算法):在线AES加解密工具

上面的图片案例,里面的意思简单来说就是用 【传参】和【随机的整数】进行除法运算,而随机的整数不能为0,如果为0则表示错误,则会重新运行此函数,重新获取随机数,直到成功或者重试的次数用完
当然,这只是用来演示如何使用的,你们可以随意更改,也可以把参数改成爬虫请求,然后检测状态码,当出现错误的时候,会自动重试的
[retry]:默认为重试3次,可设置

【附上源码】
class retry_lane(object):
    def __init__(self, retry: int = 3):
        '''
        :param retry: int类型:重试次数
        使用方法:@retry_lane(retry=3)
        '''
        self.retry = retry
    def __call__(self, func):
        def wrapper(*args, **kwargs):
            l = 0
            while self.retry > 0:
                l += 1
                try:
                    print(f'运行第{l}次')
                    return func(*args, **kwargs)
                except Exception as e:
                    self.retry -= 1
                    if self.retry == 0:
                        return e
        return wrapper

相关推荐

  1. Python爬虫实现“自动”机制的方法(1)

    2024-03-20 09:12:02       27 阅读
  2. Python

    2024-03-20 09:12:02       27 阅读
  3. 登录失败次数安全设计方案

    2024-03-20 09:12:02       39 阅读
  4. 发生播放错误,即将 jellyfin

    2024-03-20 09:12:02       38 阅读
  5. go优雅

    2024-03-20 09:12:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 09:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 09:12:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 09:12:02       82 阅读
  4. Python语言-面向对象

    2024-03-20 09:12:02       91 阅读

热门阅读

  1. 【Docker】Jaeger 容器化部署

    2024-03-20 09:12:02       42 阅读
  2. 单例模式:双重效验锁的懒汉实现方式

    2024-03-20 09:12:02       40 阅读
  3. opencv | 编译opencv卡在ADE: Download: v0.1.1f.zip

    2024-03-20 09:12:02       42 阅读
  4. PHP与Spring Boot在实现功能上的比较

    2024-03-20 09:12:02       45 阅读
  5. 关于sftp限制登录默认目录若干问题

    2024-03-20 09:12:02       32 阅读
  6. Go语言学习12-反射和Unsafe

    2024-03-20 09:12:02       46 阅读
  7. go 解决货币计算的难题:避免浮点数陷阱

    2024-03-20 09:12:02       31 阅读
  8. Rust 的 PhantomData

    2024-03-20 09:12:02       42 阅读
  9. ES进程除了kill之外,有什么优雅关闭的方式吗?

    2024-03-20 09:12:02       42 阅读
  10. R语言Scale函数与normalize.quantiles()函数的异同

    2024-03-20 09:12:02       45 阅读
  11. Linux Shell 管道基本介绍

    2024-03-20 09:12:02       44 阅读
  12. 红魔馆的馆主

    2024-03-20 09:12:02       38 阅读