【Scrapy 框架】「版本2.4.0源码」异常操作(Exceptions) 详解篇

全部源码解析文章索引目录传送门

【Scrapy 框架】版本 2.4.0 源码篇:全部配置目录索引

内容介绍

这是Scrapy中包含的所有例外及其用法的列表。

常规异常操作

关闭spider

exception scrapy.exceptions.CloseSpider(reason=‘cancelled’)

def parse_page(self, response):
    if 'Bandwidth exceeded' in response.body:
        raise CloseSpider('bandwidth_exceeded')

不关闭spider

exception scrapy.exceptions.DontCloseSpider

可以在spider_idle信号处理程序中引发此异常,以防止蜘蛛网被关闭。

放弃Item

exception scrapy.exceptions.DropItem

Item的pipline阶段必须引发的异常才能停止处理Item。

忽略请求

exception scrapy.exceptions.IgnoreRequest

调度程序或任何下载程序中间件均可引发此异常,以指示应忽略该请求。

未配置

exception scrapy.exceptions.NotConfigured

某些组件可以引发此异常,以指示它们将保持禁用状态。这些组件包括

  1. Extensions
  2. Item pipelines
  3. Downloader middlewares
  4. Spider middlewares

不支持

exception scrapy.exceptions.NotSupported

引发此异常以指示不支持的功能。

停止下载

exception scrapy.exceptions.StopDownload(fail=True)

从bytes_received信号处理程序中发出,指示不应再下载其他字节来进行响应。

  1. 如果fail=True(默认),则调用请求errback。响应对象可用作异常的response属性,该StopDownload异常又存储为value接收Failure对象的属性 。这意味着在定义为的errback中,虽然可以访问响应 。
def errback(self, failure):
	failure.value.response
  1. 如果为fail=False,则调用请求回调。

猜你喜欢

转载自blog.csdn.net/qq_20288327/article/details/113523437
今日推荐