簡體   English   中英

刮痧。 如何將項目發送到管道中的 close_spider 方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM