Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站
原创文章、码字不易,转载请注明出处和链接,谢谢!
1.环境保障
自己利用scrapy编写的智联招聘网站“大数据职位”爬虫
https://github.com/XinyaoTian/zhilian_Spider
利用git的clone命令将github上的命令克隆至服务器的/root下。该项目的克隆位置为 /root/zhilian_Spider
【注意!】若想要在Ubuntu上运行该项目,请先安装Anconda2,scrapy以及pymongo库。
2.使用定时器
使用流程:
A.安装crontab
$apt install cron
B.开通并开启cronie后台服务
$sudo systemctl enable cron.service; sudo systemctl start cron.service
C.编写用于定时执行的shell脚本
$vi cron_zhilian.sh
D.编写cron_zhilian.sh
# 这段代码的意思是
export PATH=$PATH:/root/anaconda2/bin # 导入 anaconda2 的 python 内核
cd /root/zhilian_Spider/ # 进入zhilian_Spider路径
nohup scrapy crawl OverviewSpider >> OverviewSpider.log 2>&1 & # 运行爬虫
# 保存退出
E.编辑crontab定时任务
$crontab -e
F.在MyCrontab中写入如下内容
# 命令格式为:<分钟> <小时> <日> <月份> <星期> <命令>
# 这段命令的意思是,每天的3点10分,利用 /bin/sh 中的命令执行 /root/Crontabs/cron_zhilian.sh 这个shell文件
10 3 * * * (/bin/sh /root/Crontabs/cron_zhilian.sh)
# 保存退出
G.查看定时任务情况,如果设置成功即可查看到相应任务
$crontab -l
3.日志管理
上述内容全部编辑好了后,发现ubuntu的/var/log/下面没有crontab的日志,原因是因为ubuntu默认没有开启crontab的日志功能,执行如下操作:
$vi /etc/rsyslog.d/50-default.conf
将cron.*这一行前的注释打开:
然后重启
$sudo service rsyslog restart
最后就可以查看crontab的日志了
$tail –f /var/log/cron.log
以上就是本文的全部内容,感谢您的阅读。希望对您有所帮助。