1
根據document,它說我們需要返回dict
或item
或者提升DropItem
的例外。我知道這可能會在用戶使用JSON導出器時使用,但如果我構建了不使用scrapy導出器的MongoDB管道,返回項目的目的是什麼?似乎scrapy會輸出任何返回到屏幕的內容,而且它確實會使屏幕變得混亂。爲什麼scrapy管道需要返回一些東西?
根據document,它說我們需要返回dict
或item
或者提升DropItem
的例外。我知道這可能會在用戶使用JSON導出器時使用,但如果我構建了不使用scrapy導出器的MongoDB管道,返回項目的目的是什麼?似乎scrapy會輸出任何返回到屏幕的內容,而且它確實會使屏幕變得混亂。爲什麼scrapy管道需要返回一些東西?
如果您構建MongoDB管道,我認爲您不需要返回任何dict
或item
。一個簡單的代碼蒙戈管道將是這樣的:
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))
我在註釋掉'return item'後運行它,但它似乎並沒有問題。我只是因爲強烈的措詞「必須返回......或者提高...」而困惑,並且想知道是否有一個我不知道的問題。 –
我認爲唯一的區別是,如果您刪除了'return item'語句並且屏幕上可能會看到一個空的字典,則屏幕上將不會顯示響應。 – Rahul
是的,它返回'None',運行速度更快。如果刪除''返回項目'不影響程序,我想只返回ids而不是整個字典 –