codecamp

scrapy 2.3 内置异常引用

下面是scrapy中包含的所有异常及其用法的列表。

CloseSpider

exceptionscrapy.exceptions.CloseSpider(reason='cancelled')

可以从蜘蛛回调中引发此异常以请求关闭/停止蜘蛛。支持的参数:

参数

reason (str) -- 关闭的原因

例如::

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

DontCloseSpider

exceptionscrapy.exceptions.DontCloseSpider

此异常可以在 ​spider_idle​ 防止蜘蛛关闭的信号处理程序。

DropItem

exceptionscrapy.exceptions.DropItem

必须由项管道阶段引发的异常才能停止处理项。有关详细信息,请参阅 项目管道 .

IgnoreRequest

exceptionscrapy.exceptions.IgnoreRequest

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

NotConfigured

exceptionscrapy.exceptions.NotConfigured

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

扩展项目管道下载器中心件蜘蛛中心件

必须在组件的中引发异常 ​__init__​ 方法。

NotSupported

exceptionscrapy.exceptions.NotSupported

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

StopDownload

2.2 新版功能.

exceptionscrapy.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​ 信号和 停止下载响应 主题以获取更多信息和示例。

scrapy 2.3 内置设置参考
scrapy 2.3 日志级别
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

scrapy 2.3 链接提取器

scrapy 2.3 统计数据集合

scrapy 2.3 发送电子邮件

scrapy 2.3 蜘蛛合约

scrapy 2.3 如何部署蜘蛛

scrapy 2.3 AutoThrottle扩展

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }