Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站

时间:2024-03-30 11:00:40

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.*这一行前的注释打开:

Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站

 

然后重启

$sudo  service rsyslog  restart

 

最后就可以查看crontab的日志了

$tail –f  /var/log/cron.log

 

以上就是本文的全部内容,感谢您的阅读。希望对您有所帮助。