爬虫定时任务

本文介绍如何使用Python的Scrapy框架结合定时任务进行数据抓取,包括三种实现方法:通过修改配置文件设置crontab定时任务,利用JS的setInterval函数实现超时间歇调用,以及在Linux环境下使用crontab命令进行定时任务管理。
摘要由CSDN通过智能技术生成
##第一种

# 定时任务
from scrapy import cmdline
import datetime
import time
def main():
    # 把爬虫程序放在这个类里 xinlang_spider 是爬虫的name
    cmdline.execute('scrapy crawl xinlang_spider'.split())
    
# 设定一个标签 确保是运行完定时任务后 再修改时间
flag = 0
# 获取当前时间
now = datetime.datetime.now()
# 启动时间
# 启动时间为当前时间 加5秒
# sched_timer = datetime.datetime(now.year, now.month, now.day, now.hour, now.minute,now.second) + datetime.timedelta(seconds=5)

# 启动时间也可自行手动设置
sched_timer = datetime.datetime(2018,5,13,22,30,20)
while True:
    # 当前时间
    now = datetime.datetime.now()
    # 用当前时间 == 启动时间作为判断标准,测试的时候 毫秒级的时间相等成功率很低 而且存在启动时间秒级与当前时间毫秒级比较的问题
    # 换成以下方式,允许1秒之差
    if sched_timer < now < sched_timer + datetime.timedelta(seconds=1):
        time.sleep(1)

        # 主程序
        main()

        flag = 1
    else:
        # 标签控制 表示主程序已运行,才修改定时任务时间
        if flag == 1:
            # 修改定时任务时间 时间间隔为2分钟
            sched_timer = sched_timer + datetime.timedelta(minutes=2)
            flag = 0


## 第二种
js中定时任务   
	超时 间歇调用    
第一种方式: 修改配置文件  
vim  /etc/crontab     

分 时 日 月 周  用户  命令    
45 14 19 7 4   root echo '' >> /text.txt    7月19号周四 14点45分  执行 将内容追加到根目录下面的text.txt 中   

## 第三种(linux)
 crontab 命令 
crontab -l 列出所有的定时任务    看不到配置文件中写的定时任务  
crontab -e 新增计划任务  跟上面的区别在于  没有用户名 
crontab  -r 清空计划任务  
分  时 日  月  周   命令    
55 14  19  7  5    echo '' > /tmp/text.txt   
*  *   *   *  *    命令   每分每时每天每月每周 执行这个命令  
0-59 0-23 1-31 1-12 0-6  0是 周天 1-6 周一到周六      
0  2   *   *   *   mysqldump  每天的2点备份数据库  
0  2   *   *   2   sync    每个周二的2点做数据同步     
0  8   15  *   *   /home/jsgz.py 每个月15号的八点给大家算工资  
0  */2 *   *   *   /home/camera.py 每隔2个小时执行一次查看摄像头  
0  8,12,18 * * 1-5 kq.py    每周1-5 的 8点 12点 18点  执行打卡  
0  8  *  * * *  spider.sh   每天 8点爬虫

spider.sh
#!/bin/bash
cd /usr/lala/spider
scrapy crawl xxxx

定时服务  
service  cron start|stop|restart   

查看服务是否启动  
ps -aux | grep cron  
root     19134  0.0  0.2  36076  2924 ?        Ss   15:07   0:00 /usr/sbin/cron -f   进程
root     19246  0.0  0.1  21312  1016 pts/18   S+   15:07   0:00 grep --color=auto cron 守护进程 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值