python - scrapy异常CloseSpider关闭爬虫功能
问题描述
抛出“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_close 与正常运行或满足条件(reason="bandwidth_exceed"
)。如果可能的话,我希望能够以不同的方式处理每一个
解决方案
很简单,只要定义closed
:
def closed(self, reason):
if reason == "bandwidth_exceed":
process_bandwidth_exceed()
else:
something_else()
pass
推荐阅读
- c# - 我正在尝试将值传递给 dateTime 对象,但是当月小于 month10 时出现问题
- http - Golang gin 仅在 ipv4 中获取客户端 IP
- python - Pandas - 逗号分隔行中的每个字符串在数据框中出现的频率
- jetbrains-ide - 使用 cmd-shift-f 搜索 IntelliJ / Android Studio 将随机字符注入搜索框
- php - 使用 mysql_i 连接到数据库时出错 - 拒绝访问
- javascript - 我正在尝试为我的应用程序制作占位符图像以在没有可用图像时做出反应
- c# - Aspose Words:获取每个附加文档的警告
- delphi - 如何在电子邮件中发送字符串列表并更改文本的对齐方式和格式
- c# - 如何在不显示浏览器的情况下从 Win Form 应用程序上的 IdentityServer 注销
- ios - 尝试使用 ADMob 添加插页式广告时出现错误