我有一个crontab作业,它运行包含3个Spider的myautorun.sh文件:

crontab -e

14 * * * * * ~bin/myautorun.sh


和myautorun.sh看起来像这样:

scrapy crawl spider1 &
scrapy crawl spider2 &
scrapy crawl spider3


每只蜘蛛刮20页。

当cronjob运行时,最终会出现30左右的可变抓取页面,而永远不会是60。
每个蜘蛛读取几页,但不能全部读取20页。但是,如果我评论两个蜘蛛并一次单独运行它们,它会给我60。

所以我很困惑为什么它不能正确运行并行蜘蛛,
我正在使用Crawlera运行Spider,它们位于1GB的ram虚拟服务器上。

是否有任何设置或我缺少的任何内容?
谢谢,

最佳答案

&表示您正在并行运行它们,所以这可能是问题,您的蜘蛛占用了太多内存,因此被杀死

无论如何,您还应该将Spider的输出重定向到日志文件,以便将来出现任何错误时,您将能够看到发生了什么

scrapy crawl spider1 > logs_1.txt &
scrapy crawl spider2 > logs_2.txt &
scrapy crawl spider3 > logs_3.txt

09-12 23:02