scrapy 2.3 内置异常引用
下面是scrapy中包含的所有异常及其用法的列表。
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
此异常可以在 spider_idle
防止蜘蛛关闭的信号处理程序。
DropItem
必须由项管道阶段引发的异常才能停止处理项。有关详细信息,请参阅 项目管道 .
IgnoreRequest
- exception
scrapy.exceptions.
IgnoreRequest
调度程序或任何下载器中间件都可以引发此异常,以指示应忽略请求。
NotConfigured
- exception
scrapy.exceptions.
NotConfigured
某些组件可能会引发此异常,以指示它们将保持禁用状态。这些组成部分包括:
扩展项目管道下载器中心件蜘蛛中心件
必须在组件的中引发异常 __init__
方法。
NotSupported
- exception
scrapy.exceptions.
NotSupported
引发此异常以指示不支持的功能。
StopDownload
2.2 新版功能.
- exception
scrapy.exceptions.
StopDownload
(fail=True)
从一个 bytes_received
信号处理程序,指示不应为响应下载更多字节。
这个 fail
布尔参数控制将处理结果响应的方法:
- 如果
fail=True
(默认),调用请求errback。响应对象可用作 response
的属性 StopDownload
异常,它又存储为 value
接收的属性 Failure
对象。这意味着在一个定义为 def errback(self, failure)
,但可以访问响应 failure.value.response
. - 如果
fail=False
,而是调用请求回调。
在这两种情况下,响应的主体都可能被截断:主体包含在引发异常之前接收到的所有字节,包括在引发异常的信号处理程序中接收到的字节。另外,响应对象标记为 "download_stopped"
在其 Response.flags
属性。
注解
fail
是一个仅限关键字的参数,即升高 StopDownload(False)
或 StopDownload(True)
将提高 TypeError
.
有关 bytes_received
信号和 停止下载响应 主题以获取更多信息和示例。