目录
为什么我们要在scrapy框架中设置IP代理池和用户代理池呢?
IP代理池主要是针对我们爬虫方访问网站过于频繁而被屏蔽IP地址的问题;而用户代理池主要是通过模拟成浏览器的行为去处理请求头文件和referer的问题,防止在请求网站时被拒绝连接。
简单的来说,爬虫和反爬虫是一对相生相克的兄弟,反爬虫制定的防护体制,作为我们爬虫方就要攻破它的防护进入网站搜集我们需要的数据。
说在前面:今天的实验是基于已经创建scrapy爬虫项目的基础上的,还没创建或者还不会创建scrapy项目的朋友可以看一下我的这篇文章,链接是:
最火爆的python爬虫scrapy框架项目实战,带你走进scrapy爬虫世界
今晚讲解的【IP代理池】+【用户代理池】是笔者写的关于这个攻破反爬虫体制的第二种方法,第二种方法相对于第一种方法来说,是比较容易理解和掌握的,笔者推荐大家学习这种方法。(大家可以去比较一下这两种方法)。第一种方法文章的链接是:
使用基于scrapy框架“IP代理池”攻破网站的反爬虫体制,通用模板
昨晚有读者留言说,维护IP代理池很麻烦,这是因为代理服务器的IP是有使用期限的,如下图所示:
由上图可知,不同地区的代理服务器IP的存活时间是不同的,读者若是嫌麻烦,不想经常更新IP的话,可以选择存活时间长的IP,例如:可以选择北京(存活889天)、广西桂林(999天)、广西南宁(808天)等。(注意:只可以选择HTTP类型的,因为scrapy现在只支持HTTP类型)
今天的【IP代理池】+【用户代理池】是基于scrapy框架的两大反爬虫利器,都可以作为通用的模板使用,对以后的开发运用很方便。
今天的内容从3个方面讲解:(比第一种方法简单很多)
在middlewares.py文件中添加下载中间件文件——在settings.py文件中激活中间件文件——启动运行爬虫文件
1.在middlewares.py文件中添加下载中间件文件
【IP代理池】+【用户代理池】的下载中间件文件的内容如下图所示:
可以在middlewares.py文件直接添加
2.在settings.py文件中激活中间件文件
【IP代理池】+【用户代理池】激活中间件的内容如下图所示:
注意:这个内容代码不可以直接添加,要先在settings.py文件中找到下图内容:
然后将注释去掉,添加上一下内容来激活中间件。
到这里,代码添加部分已经全部完成了,下面运行爬虫文件。
3.启动运行爬虫,部分结果截图如下:
今天的内容就分享到这里了,学会了上面的内容,你就掌握了两种攻破反爬虫的利器,以后不用害怕IP被屏蔽、请求http失败的问题了,而且还是模板来的,随时拿来用都行。
喜欢的朋友可以关注、转发一下喔,想要阅读更多精彩内容的朋友欢迎关注我,希望今晚的内容对读者有所帮助,谢谢大家的支持。