在scrapy源码中添加功能,对HTTP响应状态码493的url进行保存

在Scrapy爬虫项目中遇到HTTP 493状态码的问题,这通常是由于IP代理导致的目标网站阻止访问。虽然关闭代理可以解决,但在需要代理的场景下,决定保存所有遇到493状态码的URL。通过深入研究scrapy源代码,特别是`scrapy.spidermiddlewares.httperror`文件,找到了处理HTTP错误的地方,并添加代码捕获并保存493状态码响应的URL。
摘要由CSDN通过智能技术生成

在scrapy爬虫过程中,遇到了这样一个问题:

[scrapy.spidermiddlewares.httperror] INFO: Ignoring response <493> HTTP status code is not handled or not allowed

我们翻译一下(百度翻译):

忽略响应< 493 >不处理或不允许HTTP状态代码

经测试,该问题是源于IP代理的设置引起,目标网站可能有阻止代理IP访问的机制,只要关闭IP代理就能得到正确的响应(200)

但是在项目中又不得不使用IP代理,原因很多,例如有一些网站由于网络环境因素,直接爬取速度过慢,使用代理提高爬取速度等

于是只好把出现该问题的url全都保存下来

但是目标网址拒绝访问,连response都没有,怎么保存呢?

这时就需要研究scrapy源代码

经过一下午的奋斗,终于找到了框架内部根据HTTP错误打印响应码的位置,是在scrapy.spidermiddlewares.httperror文件中

下面是进入该文件的方法

 

然后我们添加代码,只要是出现493的response,都把它的url取下来:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值