• 【Python】模块学习之Timer定时任务,递归定时自调获取博客浏览量


    Timer定时任务

    下面是Timer函数的官方doc介绍信息

        """
                Call a function after a specified number of seconds:
                t = Timer(30.0, f, args=None, kwargs=None)
                t.start()
                t.cancel()     # stop the timer's action if it's still waiting
        """    
    • 第一个参数时指定多长时间之后执行这个函数,第二个参数时调用的函数名,
    • 后面两个是可选函数,作为传递函数需要使用的参数,可以传递普通的参数和字典
    • t.start() 启动这个定时任务,也可以使用t.cancel()在一定的条件来停止这个定时任务,

    下面这行代码表示十秒钟后调用一次views_count这个函数

    Timer(10, views_count).start()

    自调任务实例

    下面的这个实例利用threading.Timer()建立了一个自调任务,实现了每十秒请求一次博客园获取浏览量

    #! /usr/bin/python
    # coding:utf-8
    """
    @author:Administrator
    @file:Timer_test.py
    @time:2018/02/08
    """
    import requests
    import re
    from threading import Timer
    
    
    def views_count():
        global count
        global source_view
        article_views = []
        url = "http://www.cnblogs.com/Detector/default.html?page=%s"
        for i in range(1, 5):
            html = requests.get(url % i).text
            article_view = re.findall("_Detector 阅读((.*?))", html)
            article_views += article_view
        count += 1
        current_view = sum(map(lambda x: int(x), article_views))
        if current_view - source_view > 50:
            print("You have made great progress")
        else:
            print("current_view: ", current_view)
        if count < 10000:  # 运行一万次
            Timer(10, views_count).start()
    
    
    count = 0
    source_view = 2412  # 设定一个初始阅读数据
    Timer(10, views_count).start()
  • 相关阅读:
    计算机网络(1)----概述
    博客园自定义样式
    linux进程
    接口回调解析
    优先级队列
    双栈实现队列
    递归解决反转链表的一部分
    Multisim 之逻辑转换仪
    Multisim 如何添加文本 如何编辑文本字体
    Multisim 中的一些快捷键
  • 原文地址:https://www.cnblogs.com/Detector/p/8433830.html
Copyright © 2020-2023  润新知