欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Scrapy 框架翻译】异常操作(Exceptions) 篇

程序员文章站 2022-05-08 16:47:21
...

版本号:Scrapy 2.4

内容介绍

这是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,则调用请求回调。