注意: 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. 13

    2019-04

    为什么群发邮件必须换IP?

    为什么群发邮件必须换IP?首先我们先来讲讲电脑IP是什么?说简单点这是你电脑的姓名,我们现在用的网络大多数是动态IP,断开重新连接后就会换另外一个IP。明白IP的简单原理后,我们再来

  2. 29

    2019-03

    设计网路爬虫过程中需要注意的解析问题

    现在爬虫工作者越来越多,那么今天就讲讲就从解析数据和模拟器好好说说爬虫。

  3. 16

    2019-04

    使用HTTP代理服务器的安全性简评

    由于各种原因,在国内上网,免不了要和HTTP代理服务器打交道。HTTP代理服务器分加密代理服务器​和普通代理服务器。如果我们在自己的电脑上运行了某些软件之后就能访问之前不能访问的网

  4. 22

    2019-05

    问答推广的小技巧——用换ip工具

    大家有疑问的时候通常是选择在浏览器上搜索答案,百度问答作为一个大平台,问答的排名是非常靠前的,因此想做网络营销,问答是少不了要做的,那么问答推广怎么做有效果?下面小编为大

  5. 18

    2019-09

    IP代理软件助力网站SEO优化

    IP代理软件助力网站SEO优化。在互联网快速发展下,网站优化竞争也越来越大。每一个经营网站的人员应该都有这样的体会,这几年的白帽SEO越来越难做了,伴随搜索引擎技术的发展,要想通过

  6. 31

    2019-10

    大规模爬虫需要注意哪些问题?

    大规模爬虫需要注意哪些问题?网络爬虫是一个比较容易上手的技术,也许花5分钟看一篇文档就能抓取单个网站页面上的数据信息。但对于大规模网络爬虫,完全就是另一回事,并不是1*n这么简