如何进行多线程同步启用API收集IP

时间:2022-09-05    发布者:代理IP【优亦云】    来源:代理IP【优亦云】

分享到:

之前有朋友问我:你们家的API必须要有提取间隔时间吗,不能不受限制的启用吗?
优亦云客服答:您好,为了确保IP池的稳定性,不能不受限制的启用API呢。
用户朋友又说:这不合理呀,我们的网络爬虫要多线程同步使用IP发送数据的,要不然效率很低了。
优亦云客服答:你可以在本地构建一个IP池,借助优亦云API收集IP,存入本地IP池,借助本地API可以多线程同步收集IP的。
用户朋友:如何搭建本地IP池啊,不怎么会啊。
优亦云客服:这个其实跟你们爬取网络上的免费代理IP的基本原理差不太多,给个策略,敲代码对您这样子的网络爬虫大神而言肯定不是难题。
主要框图如下所示:
本地代理IP可以由四部分组成:分别为ProxyGetter、DB、Schedule、ProxyApi。
一、ProxyGetter:
代理收集端口,这个也可以在优亦云后台管理转化成,例如短效优质代理的最低套餐是单提5个IP,每启用一次API就会返回5个最新代理IP,将其放入DB。
二、DB
用于储存代理IP,现在适用SSDB和Redis(强烈推荐SSDB)。那为什么选用SSDB,我个人觉得SSDB是一个不错的Redis替代选择,安装起来很简单。
三、Schedule
任务计划,定时执行去检验DB中的代理可使用性,删掉不能用的代理。同时会主动借助ProxyGetter去收集最新代理放入DB。
四、ProxyApi
代理池对外接口,由Flask完成,作用是给网络爬虫提供与代理池互动的端口。
总体框架就是这个样子,接着就是编写代码了,这里简单介绍一下下编码模块,具体编码就要您去编程了。
A、Api
第三方接口相关编码,现在api是由Flask完成,编码也非常简单。客户端请求传给Flask,Flask启用‘ProxyManager’中的完成,包括‘get/delete/refresh/get_all’;
B、DB
数据库相关编码,现在数据库是适用SSDB/Redis。编码用工厂模式完成,方便以后扩展其他类型数据库;
C、Manager
‘get/delete/refresh/get_all’等接口的具体实现类,现在代理池只来管理proxy,以后很有可能会有很多作用,例如代理和网络爬虫的关联绑定,代理和账号的关联绑定等等;
D、Schedule
定时执行相关编码,现在只是完成定时执行去更新代理,并检验可以用代理,采用多线程方式。
基本概况就是这个样子,拥有架构策略,相信敲代码并不是什么难题。本地IP池搭建好了,就可以多线程同步不受限制的启用本地API收集IP使用了。

登录 注册
找回密码