##第一种
# 定时任务
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 守护进程
爬虫定时任务
最新推荐文章于 2024-04-03 15:19:37 发布
本文介绍如何使用Python的Scrapy框架结合定时任务进行数据抓取,包括三种实现方法:通过修改配置文件设置crontab定时任务,利用JS的setInterval函数实现超时间歇调用,以及在Linux环境下使用crontab命令进行定时任务管理。
摘要由CSDN通过智能技术生成