HttpErrorMiddleware

scrapy.spidermiddlewares.httperror.HttpErrorMiddleware

过滤掉不成功(错误)的HTTP响应,以便蜘蛛不必处理它们,这些(大多数时候)会产生开销,消耗更多资源,并使蜘蛛逻辑更复杂。

根据HTTP标准,成功的响应是那些状态代码在200-300范围内的响应。

如果您仍希望处理该范围之外的响应代码,则可以使用handle_httpstatus_listspider属性或HTTPERROR_ALLOWED_CODES设置指定spider能够处理的响应代码 。

例如,如果您希望蜘蛛处理404响应,您可以执行以下操作:

class MySpider(CrawlSpider):

    handle_httpstatus_list = [404]

即在settings中增加HTTPERROR_ALLOWED_CODES = [403], HTTPERROR_ALLOWED_CODES默认是[]

所述handle_httpstatus_list的键Request.meta也可以被用于指定的响应代码,以允许在每个请求基础。您还可以设置meta键handle_httpstatus_all 来True,如果你想以允许请求的任何响应代码。

但请记住,处理非200响应通常是一个坏主意,除非你真的知道你在做什么。

Scrapy处理200-300范围之外的响应代码的更多相关文章

  1. ××校招:前端线上笔试题--页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动

    题目: 请让页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动:   原理: 1.页面上画一个圆,画一个圆心.在这个圆的圆周上面画一个点,我们就让这个点绕着圆周跑: 2.怎 ...

  2. 第三百四十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍

    第三百四十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍 Requests请求 Requests请求就是我们在爬虫文件写的Requests() ...

  3. HTTP响应代码

    HTTP响应代码 1xx - 消息通知 这些状态代码表示临时响应.client在收到常规响应.应准备接收一个或多个 1xx 应. · 100 - Continue 初始的请求已经接受,客户应当继续发送 ...

  4. HTTP 响应代码

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成.响应分为五类:信息响应, ...

  5. php最短的HTTP响应代码

    刚刚发现在CodeProject给我推送了一篇文章叫:the Shortest PHP code for Returning  HTTP Response Code 翻译过来就是(PHP最短的HTTP ...

  6. Jmeter断言中判断请求失败的响应代码问题

    很多http请求会返回400.404.500.502等错误,我们在断言中一般会直接去勾选响应代码,然后匹配得到的响应代码,但是总是失败.百思不得其解! 后来查询Jmeter官方帮助时,在里面找到了答案 ...

  7. JS代码的位置与事件响应代码块的封装问题

    JS代码的位置       我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分.   放在<head>部分最常用的方式是在页面中h ...

  8. http协议中的响应代码从 1xx ~ 5xx,一共有41种

    http协议中的响应代码从 1xx ~ 5xx,一共有41种 http://how2j.cn/k/http/http-response-code/572.html

  9. FTP:文件传输协议(指令及响应代码)

    文件传输协议(FTP)使得主机间可以共享文件. FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输.控制连接使用类似 TELNET 协议在主机间交换命令 ...

随机推荐

  1. HDU 5242 上海大都会 G题

    这道题其实是求K条最长的不重叠的链.贪心算法+DFS即可求.深度优先搜索时,返回当前子树的最长链,使用优先队列保存其他孩子结点的最长链,即可.求结果时只需从优先队列中取前K个值的和.这相当于暴力删除每 ...

  2. jquery 的ajax无刷新上传文件之后,页面还是会莫名的刷新-----解决办法

    文件上传用到全局数组: $_FILES 只需要把下面的 <button onclick="post()">提交</button> 改为 <input ...

  3. 【cocos2d-x 3.7 飞机大战】 决战南海I (十) 游戏主场景

    主场景要包括其它类的头文件 #include "cocos2d.h" #include "MyPlane.h" #include "Bullet.h& ...

  4. 【struts2】中method={1}具体解释

    我们在使用struts2的时候,有时候为了简化struts2的配置项而採用通配符的方式,例如以下代码: <action name="ajaxregister!*" class ...

  5. leetcode中,代码怎样调试,创造本地执行环境

    初次接触leetcode,是我在一个招聘站点上看的,这个OJ真有那么厉害吗? 这几天在这个OJ上做了几道题,发现他的几个特点,1.题目不难(相对于ACM来说,我被ACM虐到至今无力),评判没那么苛刻, ...

  6. DotNetBar.Bar作为容器使用的方法及Text更新原理

    DotNetBar.Bar作为容器使用的方法及Text更新原理                          老帅    一.容器用法   控件DevComponents.DotNetBar.Ba ...

  7. HDU1024_Max Sum Plus Plus【滚动数组】

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  8. Android View的onTouch和onClick和onLongClick事件

    这三个事件的调用顺序是: onTouch->onLongClick->onClick 先看这三个事件的处理函数: public boolean onTouch(View v, Motion ...

  9. linux下获取按键响应事件【转】

    本文转载自:https://my.oschina.net/u/157503/blog/91548 1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码 ...

  10. How to use shared model by git in sql source control of red gate

    1.clone the git repository for datbase 2.open sql source control window and select the target databa ...