对于学习爬虫来说,ip被禁几乎是常见的事。因此在爬取业务中,使用代理ip几乎是常态。但是对市面上的代理ip的服务,对于个人爬虫学习者来说,价格高昂。即使淘宝上的代理ip服务,质量高的价格昂贵, 价格适中偏低质量却参差不齐。 在茫茫互联网中,也有许多人开始构建属于自己的代理IP池, 通过爬取市面上的免费ip并定时验证其有效性来构建出自己的代理池。其中haipproxy是比较开源而且搞笑的代理池。
本文也讲述如何构建出自己的代理池,通过爬取市面上公开的免费的代理IP进行验证,成本较低;技术上较为繁琐,但是你也可以从中学习到许多业务开放能力。 本项目旨在学习,继而顺便构建出自己的代理池。
前期准备/使用的框架模块
阿里云服务器,建议使用linux系统
python3.6 编译环境
celery 任务分发模块,你可以在从中学习到异步执行请求
supervisor 进程监控模块,你可以学习到进程监控等业务
sanic 服务端模块、你也可以使用flask,套接字,其他方式等进行获取
redis 存放的数据库
基本流程
创建proxy文件夹, 并该文件夹下依次创建以下.py文件:
__init__.py # 声明该文件是个模块
config.py # celery的配置参数
crawler.py # 实例crawler.py
crawl_proxy.py # 实际爬取逻辑
valid_proxy.py # celery的处理任务
db.py # redis数据库的操作类
rules.py # 爬取目标网站的信息 ,以及队列名
api.py 获取随机代理IP api
项目详细地址proxy
网友评论