Crontab 驱动 Scrapy 定时任务

做了个爬虫去定时抓自己发布在cnblogs更新的文章,考虑用corntab定时任务驱动

crontab 任务配置

crontab配置规则就不啰嗦了,网上很多介绍,规则很容易功能却很强大。
然后我发现只有.cron后缀的文件才能被配置
crontab run_scrapy.cron

crontab 的坑

crontab中没有读取到环境变量,因此所有命令必须手动写全,或者执行一个脚本,在脚本中导入环境变量

*/1 * * * * /usr/bin/bash echo "U'll see me next miniute"
#!/usr/bin/bash
. ~/.bash_profile
ps -ef | grep 'scrapy'

scrapy 的坑

scrapy 的命令必须在项目文件夹下才能正常运行,而且,scrapy本身也有环境路径

[root@iZrj9acq02ar6zvxx6ovrcZ scripts]# whereis scrapy
scrapy: /usr/local/bin/scrapy

run_scrapy.cron 类似于这样:

1 6 * * * /var/www/django-web/blog/scripts/run_blogs.sh >> crawl_blog.log

run_scrapy.sh

#!/bin/bash
echo "*****crontab begin:*****"
cd /var/www/django-web/blog/cnblogs
#/usr/local/bin/scrapy crawl cnblogs -s LOG_FILE=/tmp/scrapy.log >> /tmp/crawl_blog.log & 
/usr/local/bin/scrapy crawl cnblogs >> /tmp/crawl_blog.log & 
echo $(ps -ef | grep "scrapy crawl cnblogs"  |grep -v 'grep' |awk -F ' ' '{print $2}')
posted @ 2018-02-06 19:06  真理君的宿敌  阅读(499)  评论(0编辑  收藏  举报