2016-01-13 67 views
2

我希望能夠開始/暫停/恢復蜘蛛,我嘗試使用暫停scrapy。我可以得到故障嗎?

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它會再次工作,但我不知道我是否在那裏失去一些東西。

回答

2

As explained in the docs,scrapy允許暫停和恢復爬網,但您需要一個JOBDIR設置。

JOBDIR value應該是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爬命令可能是:

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 
+0

明白了。我認爲這不僅僅是將文件命名爲文件#1,而是負面的。感謝您解釋一切。 – Nick