[英]scrapy exception CloseSpider to close spider function
引发“ CloseSpider”异常时会发生什么以及如何处理。
from scrapy.exceptions import CloseSpider
#code
def parse(self,response):
#code
if condition:
raise CloseSpider(reason="bandwidth_exceed")
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
spider = super(FlickrSearchSpider, cls).from_crawler(crawler, *args, **kwargs)
crawler.signals.connect(spider.spider_closed, signal=scrapy.signals.spider_closed)
return spider
def spider_closed(self):
print("completed")
我如何区分spider_closed与正常运行或满足的条件( reason="bandwidth_exceed"
)。 我希望能够尽可能处理不同的问题
非常简单,只需定义closed
:
def closed(self, reason):
if reason == "bandwidth_exceed":
process_bandwidth_exceed()
else:
something_else()
pass
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.