注册
登录
提问时间:2018/7/20 16:49:59    楼主:未知网友   阅读量:991

在上一篇文章《浅析分布式爬虫使用代理IP的几种方案》已经提到,使用爬虫代理IP的最佳方案是在本地维护一个IP池,这样才能更有效的保障爬虫工作的高效稳定持久的运行,那么怎么在本地维护IP池呢?

一、在代理服务商认可的调用API频率下尽可能多的提取IP,然后写一个检测程序,不断的去用这些代理访问一个稳定的网站,看是否可以正常使用。这个过程可以使用多线程或异步的方式,因为检测代理是个很慢的过程。

二、提取出来的有效代理IP如何保存呢?这里推荐一个高性能支持多种数据结构的NoSQL数据库SSDB,用于代理Redis。支持队列、hash、set、k-v对,支持T级别数据。是做分布式爬虫很好中间存储工具。

三、如何让爬虫更简单的使用这些代理?python有很多的web框架,随便拿一个来写个api供爬虫调用。这样有很多好处,比如:当爬虫发现代理不能使用可以主动通过api去delete代理IP,当爬虫发现代理池IP不够用时可以主动去refresh代理池。这样比检测程序更加靠谱。

四、在爬虫使用代理IP不断使用的过程中,持续进行第一步,保证不断有新的IP进入IP池。为了避免浪费和提高效率,根据使用代理IP的实际情况,也可以对从代理服务商那里提取IP的频率进行调整。

在使用代理IP进行爬虫工作的过程中,会遇到各种各样的问题,如何更好的解决问题,提高工作效率,合理利用资源,需要不断的调整和优化,同时还得面对目标网站的反爬虫策略,不断的更新,爬虫工作不是一劳永逸,而是一个不断提升的过程。