为 scrapy 设置一个 Crontab

Setting up a Crontab for scrapy

我正在尝试设置一个 crontab 来抓取一些东西。到目前为止,我写了

23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv

但是当我这样做时,我得到了这个:

/bin/sh: scrapy: command not found.

我该怎么办?
我试图在我的 mac 中找到 scrapy,但找不到。但是我可以 运行 来自终端的 crontab 任务的第二部分。

因为 crontab 没有为你设置 PATH 变量,所以它不知道 scrapy 是什么。

最简单的补救方法是使用scrapy的完整路径:

$ which scrapy
/usr/bin/scrapy

然后使用它而不是 scrapy:

23 18 * * * cd PycharmProjects/untitled/Project1 && /usr/bin/scrapy crawl xx -o test.csv

另一种方法是在您的 crontab 中设置 PATH 环境:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# or your custom path, check your `.bashrc` for PATH you have set in your shell
23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv

旁注:
在 cron 中,将命令包装在填充 PATH 和其他配置的某种脚本中并在 cron 中调用该脚本而不是直接调用命令也很常见。