1.代理池开发环境
平台:Mac,可以运行Windows和Linux上(这里使用的是Win10环境开发)
开发语言:Python3(博主使用的是python3.8)
开发工具:PyCharm
使用到的主要技术:
requests:用来发送请求,获取页面数据
lxml:使用XPATH从页面提取我们想要的数据
pymongo:吧提取到的代理IP存储到MongoDB数据库中读取代理IP,给爬虫使用
Flask:用于提供web服务
1.1代理池工作流程
代理池的工作流程图
代理池工作流程文字描述
代理IP采集模块-采集代理IP-检测代理IP-如果不可用,直接过滤掉,如果可用,指定默认分数-存储到数据库中
代理IP检测模块-从数据库中获取所有代理IP-检测代理IP-如果代理IP不可用,就把分数-1,如果分数为0从数据库中删除,否则更新数据库,如果代理IP可用,修复为默认分值,更新数据库
代理API模块-从数据库中提取高可用的代理IP给爬虫使用
1.2代理池的模块及其作用
代理池分五大核心模块
爬虫模块:采集代理IP
从代理网站上采集代理IP
进行校验(获取代理响应速度,协议类型,匿名类型)
把可用代理IP存储到数据库中
代理IP的校验模块:获取指定代理的响应速度,支持的协议以及匿名程度
原因:网站上所标注的响应速度,协议类型和匿名类型是不准确的
这里使用