Python定时任务随机时间执行

背景:
有一个爬虫服务,需要定时从公开网站上拉取一些数据,为了避免被识别为爬虫(防爬虫的识别需要根据很多特征,时间仅仅是其中一个维度),需要在指定的时间内,随机生成一个时间爬取

脚本是python写的,直接上代码...

import logging
import traceback
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()

def spider_schedule():
    # spider_schedule是job_id
    scheduler.remove_job('spider_schedule')

    try:
        print 'spider start... ', datetime.now().strftime('%Y-%m-%d %X')
        #--------自己的业务代码-------
        pass
        #---------------------------
        print 'spider end... ', datetime.now().strftime('%Y-%m-%d %X')
    except Exception as e:
        print traceback.format_exc(e)
    finally:
        interval_minutes = random.randint(60, 120)  # 1-120分钟随机选一个时间
        interval_seconds = random.randint(1, 60)  # 1~60秒随机选一个时间
        scheduler.add_job(spider_schedule, 'interval', minutes=interval_minutes, seconds=interval_seconds, id='spider_schedule')


if __name__ == '__main__':
    scheduler.add_job(spider_schedule, 'interval', seconds=10, id='spider_schedule')
    scheduler.start()


欢迎订阅「K叔区块链」 - 专注于区块链技术学习
Python定时任务随机时间执行
博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548

相关推荐