爬虫-截获http错误码(Python)

在Python爬虫中,默认情况下,Scrapy会过滤掉HTTP响应状态码不在200-300之间的请求。为了截获403和503等错误状态码,可以在爬虫类中设置`handle_httpstatus_list`,如`handle_httpstatus_list = [403, 503]`。当状态码匹配时,可在`parse`方法中根据`response.status`进行相应处理。另外,使用urllib2时,可以通过try...except...捕获HTTPError,通过`e.code`获取错误状态码。" 86513083,8332267,IPv6邻居发现(ND)的安全威胁,"['网络协议', '安全', 'IPv6网络']
摘要由CSDN通过智能技术生成

原文:http://blog.csdn.net/haipengdai/article/details/48526507

http状态码描述:1)http://justcoding.iteye.com/blog/833058

                            2)http://tool.oschina.net/commons?type=5

                            3)http://www.tuicool.com/articles/z6NNV3B

因为默认的处理器处理了重定向(300以外号码),并且100-299范围的号码指示成功,所以你只能看到400-599的错误号码。Scrapy默认的设置是过滤掉有问题的HTTP response(即response状态码不在200-300之间)。因此403的情况会被忽略掉,意思就是我们不是处理这个url 请求的response,直接就忽略,也就是及时我们用response.status == 403判断没有作用,因为只有status处于200-300的请求才会被处理。故:

1)利用scrapy爬虫截获状态码:可在爬虫模块的爬虫类中加上handle_httpstatus_list = [‘xx’],数组中填需要截获的状态码,如要截取403和503.则handle_httpstatus_list = [403,  503],在parse方法中通过response.status判断其状态码,进行下一步的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值