原文:http://blog.youkuaiyun.com/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判断其状态码,进行下一步的处理。
2)利用urllib2爬取网站截获状态码:如图所示,若请求不成功,则会出现错误程序停止运行,通过try..except..捕获错误进行处理,
通过e.code可得到HTTPError的状态码
在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网络']

被折叠的 条评论
为什么被折叠?



