使用crontab使用scrapy调度爬网

时间:2016-07-18 03:15:07

标签: bash scrapy web-crawler crontab

我是使用crontab的新手,我只是尝试阅读文章如何每5分钟使用scrapy自动安排抓取,有些文章建议使用crontab ... 但我不知道如何实现正确的脚本...

这里是我的.sh文件

#!/bin/sh
cd /home/kautsar/Downloads/thehack
scrapy crawl thehack

我已经+ x来运行runScrapy.sh

但是当我尝试使用

crontab -e
*/5**** cd /home/kautsar && sh runScrapy.sh

然后当我按下回车按钮时,结果为“?” 谁知道这意味着什么?你能解释一下吗? 请告诉我正确的方法来定期进行网页抓取,这个时间由我设定..非常感谢

1 个答案:

答案 0 :(得分:1)

我怀疑您的默认编辑器设置为ed。不知道为什么。如果是这种情况,您可以阅读如何使用man ed命令,但将系统配置为使用您喜欢的编辑器可能会更好。我们假设它是vim。如果不是,请将vim替换为相应的名称。

export EDITOR=vim
crontab -e

此时,您应该在您最喜欢的编辑器中编辑crontab文件。我建议您在文件中添加注释,类似于下面的注释。我总是这样做,以提醒自己所有列的各种星号是什么。 DoM是月份日(1-31),DoW是星期几(0-7或周日/周一/周二等)。然后将您的shell脚本作为完全限定的文件名(因此您不需要cd和脚本调用)。

# min hr DoM mon DoW cmd
  */5 *  *   *   *    sh /home/kautsar/runScrapy.sh

此时,您应该可以像使用编辑器一样保存并退出。

crontab文件中还有其他等待你的陷阱。阅读man 5 crontab并特别注意PATH和HOME的定义。 cron在缩写环境中运行,而不是在您的登录环境中运行,因此有时需要设置PATH变量。您可能会发现将$ HOME设置为主目录很有用。例如,您的命令可能是$HOME/runScrapy.sh。最后,您可以将MAILTO设置为cron发送任何命令输出的地址,如果您的系统上未配置外发电子邮件,这可能很有用。