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