浅谈搭建IP池的方法

更新:2021/2/18 20:48:32 浏览:867次

爬虫工作中,遇到访问太频繁ip被封是难以避免的,而本地单个ip是不足以完成大规模爬取,今天给大家简单说一个搭建代理ip池的方法。代理池主要由四部分组成:ProxyGeter(代理获取模块)、RedisClient(代理管理模块,负责存储、删除、取出等基本操作)、Texter(代理可用性测试模块)和Web_Api(用户获取模块)。

一、ProxyGeter

从网络上爬取最新的代理,并把代理存储到redis数据库中。

二、RedisClient

主要实现ip的删、减、增等基本操作,采用reids的几方面原因如下

1、 redis的hash数据结构可以为ip的有效性(根据可用性分为0-100)进行评分;

2、 redis提供的key-value更方便地储存IP;

3、 对于ip的存储、提取、删除、查询数量等功能会更加地快捷。

三、Texter

模块主要目的是检测ip的可用性。提前设置好需要检测的网站站点,然后随机取出数据库中的代理,用获取到的ip来访问目标网站:

1、若访问无效,首先降低ip的分数等级(减10),其次做判断:若该ip的分数等级低于10分直接从reids数据库中删除;

2、若访问有效,首先增加ip的分数等级(加10),其次更新reids中该ip的分数等级。

四、Web_Api

为了让用户获取可用性ip更加方便一点,这里利用flask框架做了一个API,这个接口连接着redis数据库;当打开这个api开关时,直接从redis数据库中随机获取一个分数等级高的ip,用户可以通过访问这个接口(提供的url)就可以获取相应的IP代理。

这四个模块时彼此独立的(例如,当检测一个ip不可用时,需要调用RedisClient来从数据库中删除这个ip),因此还需要引入Schedule来进行协调。

蝶鸟代理IP平台专业提供国内优质短效代理IP,稳定高匿,支持Http(s)/Socks5协议,拥有3000多个节点,覆盖全国200多个城市,欢迎各位朋友前来测试和选购。

  电话:13214265351

  QQ:2873763815