使用crontab来执行scrapy定时爬取的需求。原因是在scrapy框架中,没有定时爬取的设置选项。
1. 什么是Crontab?
Crontab命令是Unix系统和类Unix系统中,用来设置周期性执行的指令。该命令从标准输入设备读取指令,并将其存放在“Crontab”文件中,以供后期读取和执行。Crontab所存的指令,被守护进程激活。crond常常在后台运行,以一分钟为间隔检查是否有预定的作业需要执行,这类作业一般成为cron jobs。
1. 打开Ubuntu中的crontab功能
在Ubuntu中,crontab功能默认是关闭的,需要我们自己打开。
emacs /etc/rsyslog.d/50-default.conf所打开的文件中,将
cron.* /var/log/cron.log
这一行的注释打开。
然后重启系统服务,使刚才的改变生效。命令是:
$ sudo service syslog restart
2. contab的命令格式
Crontab命令格式
*/1 * * * * 每分钟执行一次
0 * * * * 每小时执行一次
0 0 * * * 每天执行一次
0 0 * * 0 每周执行一次
0 0 1 * * 每月执行一次
0 0 1 1 * 每年执行一次
3. 编辑crontab要执行的命令和执行频率
使用命令
crontab -e会出现下面这些选项,直接输入数字选择打开所需的编辑器即可。
在打开的文件中的最后一行,添加要执行的命令和执行频率: