我希望能够启动/暂停/恢复蜘蛛,我正在尝试使用
scrapy crawl some spiders JOBDIR=crawls/some spider-1
然而,它主要只是一个复制和粘贴,因为没有太多关于这里真正发生的事情的信息。任何人都有关于细节的更多信息?
我得到了第一部分,但不知道JOBDIR=crawls/some spider-1
部分究竟发生了什么。我看到人们把代码放在这个
scrapy crawl some spiders JOBDIR=crawls/some spider
..没有-1
而且不知道它有什么不同。我注意到了这一点。我倾向于按CTRL + C退出,这显然很糟糕,因为我阅读的内容和我的经历,因为如果我重新输入代码
scrapy crawl some spiders JOBDIR=crawls/some spider-1
..它就像蜘蛛一样完成了。
我犯这个错误后如何“重置”它?如果我拿出-1
它会再次起作用,但我不知道我是否在那里丢失了一些东西。
答案 0 :(得分:2)
path to a directory on your filesystem,scrapy允许暂停和恢复抓取,但您需要JOBDIR
设置。
JOBDIR
值应该是{{3}}来保持scrapy需要恢复其必须执行的各种对象。
请注意,对于单独抓取,您需要指向其他目录:
此目录将用于存储所有必需的数据以保持状态 单个工作(即蜘蛛侠)。重要的是要注意这一点 目录不能由不同的蜘蛛共享,甚至不同 同一个蜘蛛的作业/运行,因为它意味着用于存储 单一工作的状态。
复制该文档页面中的内容:
scrapy crawl somespider -s JOBDIR=crawls/somespider-1
---------- -------------------
| |
name of your spider |
|
relative path where to save stuff
另一个使用JOBDIR
的scrapy抓取命令示例可能是:
scrapy crawl myspider -s JOBDIR=/home/myuser/crawldata/myspider_run_32
示例时间表:
scrapy crawl myspider -s JOBDIR=/home/myuser/crawldata/myspider_run_001
# pause using Ctrl-C ...
# ...lets continue where it was left off
scrapy crawl myspider -s JOBDIR=/home/myuser/crawldata/myspider_run_001
# crawl finished properly.
# (and /home/myuser/crawldata/myspider_run_001 should not contain anything now)
# now you want to crawl a 2nd time, from the beginning
scrapy crawl myspider -s JOBDIR=/home/myuser/crawldata/myspider_run_002