Python模块学习之Timer定时任务,函数自调实现定时获取博客园博客浏览量

Python模块学习之Timer定时任务,函数自调实现定时获取博客园博客浏览量原文链接:http://www.cnblogs.com/Detector/p/8433830.htmlTimer定时任务下面是Timer函数的官方doc介绍信息“””Callafunctionafteraspecif

Python模块学习之Timer定时任务,函数自调实现定时获取博客园博客浏览量"

原文链接:http://www.cnblogs.com/Detector/p/8433830.html

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()

今天的文章Python模块学习之Timer定时任务,函数自调实现定时获取博客园博客浏览量分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/83499.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注