注册
登录
提问时间:2018/7/23 14:38:54    楼主:未知网友   阅读量:427

不管是爬取免费代理IP,还是购买付费代理IP,都可以在本地设计一个IP池。这样既方便使用,又可以提升工作效率。那么怎么在本地设计一个代理IP池呢?

一、代理IP获取接口

如果是爬取免费的代理IP,使用ProxyGetter接口,从免费代理源网站抓取最新代理IP;如果是付费代理IP,一般都有提供获取IP的API,会有一定的限制,比如每次提取多少个,提取间隔多少秒。

二、代理IP数据库

用于存放获取到的代理IP,推荐选择SSDB。SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用Google高性能的存储引擎LevelDB,适合大数据量处理并把性能优化到Redis级别。

三、代理IP检测计划

代理IP具有时效性,不管是免费的代理IP还是付费代理IP,都有一个有效期,过了有效期就会失效,所以需要去检测有效性。设置一个定时检测计划,检测代理IP有效性,删除无效IP、高延时IP,同时预警,当IP池里的IP少于某个阈值时,通过代理IP获取接口获取新的IP。

四、代理IP池外部接口

有了代理IP池,还需要设计一个外部接口,通过这个接口调用IP池里的IP给爬虫使用。代理IP池功能比较简单,使用Flask就可以搞定。功能可以是给爬虫提供get/delete/refresh等接口,方便爬虫直接使用。

本地代理IP池的设计是为了方便爬虫使用,并且提高效率,所以设计尽量简洁方便,如果使用的是付费代理,爬虫工作要求不高,则不必建立本地代理IP池。