目录
为什么我们要学习基于scrapy框架“代理IP池”呢?因为我们利用爬虫去爬取网站的信息,频繁访问会被网站屏蔽我们的IP地址,这样我们也就连接不上网站了,得不到我们想要收集的信息。所以我们要设置IP代理池来攻破反爬虫体制。
说在前面:IP代理池是在已经建好爬虫项目的基础上进行添加的,还没创建好爬虫项目文件夹或者还不会创建scrapy项目的朋友,可以先去我的这篇入门scrapy文章学习先。链接是:最火爆的python爬虫scrapy框架项目实战,带你走进scrapy爬虫世界
笔者的项目文件夹如下图所示:
今天的【IP代理池】实验,可以作为一个通用的模板使用。学会这几个步骤,把需要添加的代码复制添加到新的爬虫文件就已经成功设置好IP代理池了,大家收藏好,便于以后的开发使用。
下面开始讲解IP代理池是怎样设置的:
主要有4个方面的思路:
在settings.py文件中自定义一个IPPOOL池——在middlewares.py文件中编写中间件文件——在settings.py文件中激活中间件文件——运行爬虫文件
1.在settings.py文件中自定义一个IPPOOL池,添加信息如下图所示:
自定义一个IPPOOL池
说明:这里的IP池的IP个数可以有多个的,在这里笔者只用了两个。那么代理服务器IP在哪里可以找到呢?这是国内代理服务器IP的链接: 需要添加多个的朋友可以去看看。(注意:在确认程序代码没有错误的情况下,程序运行错误的话,很可能就是这里的代理服务器IP已经失效了,这个时候要重新更换IP就可以正常运行了)
2.在middlewares.py文件中编写中间件文件,添加内容如下图所示:
编写中间件文件
3.在settings.py文件中激活中间件文件,在settings.py文件中添加如下内容:
激活中间件文件
突破反爬虫的【IP代理池】到这里已经编写好了,下面运行爬虫文件。
4.运行爬虫文件:
部分结果如下图所示