本文为译文,原文见地址:https://docs.scrapy.org/en/latest/topics/exceptions.html
异常
内置的异常引用
下面是一组Scrapy内置的所有异常和这些异常的适用范围。
DropItem
exception scrapy.exceptions.DropItem
这个异常必须由数据项管道阶段抛出,以便停止处理数据项。更多信息见数据项管道。
CloseSpider
exception scrapy.exceptions.CloseSpider(reason=‘cancelled’)
可以从爬虫的请求回调中抛出该异常,以便爬虫的关闭/停止。支持参数:
- reason(str)- 关闭的原因。
示例:
def parse_page(self, response):
if 'Bandwidth exceeded' in response.body:
raise CloseSpider('bandwidth_exceeded')
DontCloseSpider
exception scrapy.exceptions.DontCloseSpider
在spider_idle信号的处理程序中可以抛出该异常,以保护爬虫不被关闭。
IgnoreRequest
exception scrapy.exceptions.IgnoreRequest
在调度器或者任何下载器中间件中可以抛出该异常,以便指示该请求应该被忽略。
NotConfigured
exception scrapy.exceptions.NotConfigured
在一些组件中可以抛出该异常,以便指示这些组件将保持不可用的状态。这些组件包括:
- 扩展
- 数据项管道
- 下载器中间件
- 爬虫中间件
该异常必须在组件的__init__函数中抛出。
NotSupported
exception scrapy.exceptions.NotSupported
抛出该异常表示不支持某个特性。