注意: IP精灵代理仅提供国内ip网络节点,不提供境外网络节点,不能用于任何非法用途或访问境外封闭网站,不能跨境联网,只能用于合法的国内网络加速。

您好,请登录 没有账号?

首页 > 新闻资讯 > 反反爬策略:随机更换请求对象的IP信息

反反爬策略:随机更换请求对象的IP信息

来源:互联网 作者:admin 时间:2019-04-15 15:09:11

爬虫的目的就是为了模拟点击浏览器操作的行为,在反反爬策略中,最基础的就是更换User-Agent。User-Agent的作用是方便服务器识别,当前请求对象的身份信息。无法从身份属性来识别是否是机器操作,网站服务器只能通过其他信息来辨别,区别机器和正常用户。识别IP访问频率,判断cookie信息,添加验证码操作等都是常见的网站反爬操作。下面具体来讲讲反反爬策略:随机更换请求对象的IP信息。

反反爬策略:随机更换请求对象的IP信息

Scrapy中,更换请求对象的IP信息非常的方便,只需要在request对象进入下载器之前,修改request对象的参数信息。

所以我们需要在下载器中间件 Download_middleware中自定义一个下载器中间件ProxiesMiddleware,在process_request()函数中修改request对象信息。

其中 PROXIES_LIST 是构建的代理列表。

process_request的参数分别是request当前请求对象,spider当前的爬虫对象。

返回None,Scrapy将继续处理该Request;

返回Request对象时,这个Reuqest会重新放到调度队列里,更低优先级的process_reqyest()函数不会执行;

返回Response对象时,直接将Response对象发送给Spider来处理。

现在每次发送一次请求,请求对象的IP信息就会从配置中的代理IP池中随机挑选一个。不同的IP就会迷惑服务器监控,不会对本次请求做反爬处理了。至此,我们的爬虫就能顺顺当当的获取数据了。好了,本期结束,大家散会吧。

NO! NO! NO!这还远远不够,这才只是代理的第一步。没有哪个代理是能保证百分之百成功的。付费代理也好,免费代理也好,即使是高匿代理也只不过是提高了防反爬的几率,并没有说一定会成功的。

请求失败的解决方案有两种:

1. 多试几次,直到请求成功,不成功就报错。

2. 换一个IP试试,直到换成请求成功的代理。对代理质量要求必须高。如果代理池质量很差,项目就会陷入死循环中。

解决逻辑是: 设置重试次数,达到指定次数就换IP。

幸运的是Scrapy框架中自带了处理失败请求的中间件RetryMiddleware。

注释的部分是添加的加入代理的逻辑,需要继承RetryMiddleware之后再重写。

在settings中设置最大重试次数以及需要进行重试的异常状态码列表。

关闭Scrapy自带的RetryMiddleware中间件,开启自定义的Retry中间件。

启动项目测试。遇到失败的请求会重新发送,超过最大重试次数以后返回一个空的数据。

这就是我们预期的结果了,剩下的就是提高代理池的质量,就能最大程度的保证爬虫的可用性了。


最新资讯

推荐阅读

  1. 22

    2018-11

    采集爬虫使用IP代理还会封ip吗?IP代理精灵告诉你

    爬虫听上去是一个很神秘的词语,用好了爬虫技术可以成就类似谷歌百度这种大神级别的搜索引擎,而如果使用不当分分钟可以搞垮一个小网站。很多站长常常会遇到ip因为爬虫太频繁而被网站

  2. 18

    2019-06

    云服务器能做http代理吗

    云服务器能做http代理吗?只要懂得相应的代码技术,是可以的。想使用云服务器做http代理,首先要在服务商处购买一台云服务器。通常使用代理服务器有以下作用。安全过滤 为了安全,不允许

  3. 08

    2019-06

    高质量代理ip在哪里买

    高质量代理ip在哪里买?有目共睹如今电商事业发展的如火如荼,但是很多商家以前要为自己添加客源还是需要很多高质量代理ip资源。因为他们平时所用的添加客源的平台功能是非常单一的,

  4. 19

    2019-06

    使用http代理IP的几种授权方式

    很多朋友在使用http代理的时候发现需要绑定IP白名单,认为很是麻烦,经常有朋友跟我说,你看看这家、那家都不用绑定白名单的,拿到IP就能直接使用,多方便啊,你们就不能学一学吗?每当

  5. 24

    2019-04

    使用HTTP代理IP后可以无限投票吗

    很多朋友总是在朋友圈拉人投票,谁的朋友多就能获得更多的票数,至于本身实力是否能得第一已经不太重要。于是,各种拉票一时盛行,而网络刷票也应运而生。但是,很多网站的投票系统经

  6. 03

    2019-06

    付费动态ip代理怎么选择

    想使用代理IP,在网络上随便一搜,就可以找到许多免费的IP地址供你使用,对于偶尔使用代理IP的人来说,这些免费的代理IP就已经能够满足需求了,但是网络上有这么多的免费IP,为什么还有