2016-03-04 177 views
1

根據document,它說我們需要返回dictitem或者提升DropItem的例外。我知道這可能會在用戶使用JSON導出器時使用,但如果我構建了不使用scrapy導出器的MongoDB管道,返回項目的目的是什麼?似乎scrapy會輸出任何返回到屏幕的內容,而且它確實會使屏幕變得混亂。爲什麼scrapy管道需要返回一些東西?

回答

0

如果您構建MongoDB管道,我認爲您不需要返回任何dictitem。一個簡單的代碼蒙戈管道將是這樣的:

class MongoPipeline(object): 

    def open_spider(self, spider): 
     #some code for mongo client connection 

    def process_item(self, item, spider): 
     self.col.insert(dict(item)) 
+0

我在註釋掉'return item'後運行它,但它似乎並沒有問題。我只是因爲強烈的措詞「必須返回......或者提高...」而困惑,並且想知道是否有一個我不知道的問題。 –

+0

我認爲唯一的區別是,如果您刪除了'return item'語句並且屏幕上可能會看到一個空的字典,則屏幕上將不會顯示響應。 – Rahul

+0

是的,它返回'None',運行速度更快。如果刪除''返回項目'不影響程序,我想只返回ids而不是整個字典 –

相關問題