如何从 cron 正确运行 scrapy 爬虫

如何从 cron 正确运行 scrapy 爬虫

我如何运行一个命令,就像在一项需要在特定文件夹中才能运行该命令的作业scrapy crawl empt.com中一样cron,例如:

/downloads/my_crawler/empt/empt/然后命令scrapy crawl empt.com

我当前的crontab条目如下所示: 0 */2 * * * * root /downloads/my_cralwer/empt/empt/ scrapy crawl empt.com 谢谢!

答案1

尝试:

0 */2 * * * * root cd /downloads/my_cralwer/empt/empt/ && scrapy crawl empt.com

答案2

每天早上 5 点,在我的 scrapy crawl 中添加以下几行代码crontab -e。这是 crocs 答案的略微修改版本

PATH=/usr/bin
* 5 * * * cd project_folder/project_name/ && scrapy crawl spider_name

如果不设置PATH,cron 会给我一个错误“ command not found: scrapy”。我猜这是因为/usr/bin在 Ubuntu 中存储了运行程序的脚本。

请注意,我的 scrapy 项目的完整路径是/home/user/project_folder/project_name/。我env在 cron 中运行了该命令,并注意到密码是/home/user。因此我跳过了/home/user/上面crontab的内容

cron 日志在调试时很有用

grep CRON /var/log/syslog

答案3

我知道这是一篇旧帖子,但为了让我的工作正常,我还需要添加一个路径变量。否则 cron 可能无法找到 scrapy。对我来说,它是: PATH=/usr/local/bin 只需找到 scrapy 二进制文件并将路径变量添加到文件中 cronjob 之前的位置。我通常用它crontab -e来编辑 cronjob 列表。但像 webmin 这样的实用程序也可以做到这一点。

相关内容