【问题标题】:Setting up a Crontab for scrapy为scrapy设置一个Crontab
【发布时间】:2017-03-20 21:39:56
【问题描述】:

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

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

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

/bin/sh: scrapy: command not found.

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

【问题讨论】:

  • 您的 CD 参数中没有完整路径
  • @BipulJain 你是什么意思?我应该添加蜘蛛文件夹吗?或者我应该找到scrapy在哪里?

标签: scrapy crontab


【解决方案1】:

由于 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 中调用该脚本而不是直接调用命令是很常见的。

【讨论】:

  • 旁注:我使用的是 Mac,因此当我写 'which scrapy' 时,我的 scrapy 路径会有所不同
  • @AliyarÖzercan 你能发布整个 crontab 文件吗?该错误提到未找到“应用程序”命令,但在您的文本中没有提到它。此外,您可能应该在 cd 命令中使用绝对路径。例如以/home/user/myproject开始
  • @AliyarÖzercan 以这种格式阅读有点困难,你能在一些粘贴箱上以原始格式发布吗?即pastebin.ubuntu.com
  • @AliyarÖzercan 您发布的日志仍然使用scrapy,而不是它的绝对路径(即/usr/bin/scrapy)。
  • @AliyarÖzercan PATH 应该包含由: 分隔的目录列表。所以你应该有PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin/(没有scrapy
猜你喜欢
  • 1970-01-01
  • 2011-05-08
  • 2017-09-16
  • 2019-03-22
  • 2011-10-10
  • 1970-01-01
  • 2013-09-23
  • 2018-08-28
  • 2014-12-07
相关资源
最近更新 更多