在爬取网站时,经常会遇到ip被封禁,导致爬虫无法正常工作。针对这种情况,我们就需要使用ip代理,通常是构建一个IP代理池。
IP代理通常有三种方案:
1、自己买IP地址,自己做代理池,如,购买阿里云IP地址。但是这种方案,成本太高,不太现实。
2、直接购买代理,这些代理需要验证之后才能使用。这种方案,虽然成本比方案一低,但是使用起来不太方便。
3、爬取卖代理的网站,获取代理IP,构建一个代理IP池。这种方案较方案二来说,几乎没有成本,我们只需要爬取代理网站的可用IP就可以了。
设计方案
1、编写一个线程,用于爬取各个代理网站,获取代理的地址,验证入库。
2、编写另一个线程,用于扫描数据库里的代理,验证是否一直可用。
网站:
https://www.cnblogs.com/ospider/p/proxy-pool.html
https://www.cnblogs.com/qiyeboy/p/5693128.html
https://zhuanlan.zhihu.com/p/25285987
https://zhuanlan.zhihu.com/p/31421316
https://zhuanlan.zhihu.com/pythoncrawl
http://blog.sina.com.cn/s/blog_a6d5ba430102wqie.html
开源的IP代理项目:
https://github.com/TimoGroom/IPProxys
https://github.com/qiyeboy/IPProxyPool
https://github.com/xiaosimao/IP_POOL