我希望能够启动/暂停/恢复蜘蛛,并且尝试使用
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
,它将再次起作用,但是我不知道我是否在那里丢失了东西。 最佳答案
As explained in the docs,scrapy允许暂停和恢复爬网,但是您需要JOBDIR
设置。JOBDIR
值应该是path to a directory on your filesystem,用于持久存储scrapy需要恢复的各种对象。
请注意,对于单独的爬网,您需要指向其他目录:
该目录将用于存储所有需要的数据以保持状态
一份工作(即蜘蛛跑)。重要的是要注意
目录不能由不同的蜘蛛共享,甚至不能共享
同一只蜘蛛的工作/运行,因为它用于存储
一份工作的状态。
复制该文档页面中的内容:
scrapy crawl somespider -s JOBDIR=crawls/somespider-1
---------- -------------------
| |
name of your spider |
|
relative path where to save stuff
使用
JOBDIR
的另一个示例scrapy crawl命令可能是: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