[英]Scrapy. How to send item to close_spider method in pipeline
我生產並處理了許多項目,在某些情況下,我更新了跟蹤表。 這個跟蹤包含幾個屬性,包括國家,所有這些屬性都來自該項目。 所有這些操作都在進行中。 蜘蛛關閉后,我必須按國家/地區將此跟蹤發送給負責人。 但我無法將項目發送到我捕獲關閉蜘蛛的方法
為了抓住這一刻,我使用了這個:
@classmethod
def from_crawler(cls, crawler):
temp = cls()
crawler.signals.connect(temp.customize_close_spider, signal=signals.spider_closed)
return temp
def customize_close_spider(self, **kwargs):
reason = kwargs.get("reason")
spider = kwargs.get("spider")
if reason == "finished":
#some action
我不能將項目發送到 from_crawler 和 customize_close_spider。 我需要它才能從項目中獲取國家屬性。
也許還有另一種發送信號的方法,例如,我可以從跟蹤方法調用的另一種方法
spider_closed 方法僅在抓取結束時執行一次。 如果您需要為每個項目執行某些操作,您可以使用 process_item 方法(對每個項目執行)。
如果您需要等到所有項目都被抓取,您可以將所有項目寫入文件( doc ),並在 spider_close 中從此文件中讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.