为 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 中调用该脚本而不是直接调用命令也很常见。
我正在尝试设置一个 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 中调用该脚本而不是直接调用命令也很常见。