- 1、 爬虫模块编写,支持pyquery、xpath、JavaScript、beautifulsoup、正则等多种解析模式,使用请查看上面中文文档;
- 2、 支持抓取各类日志保存,抓取日志、错误日志等各类日志信息;
- 3、 抓取起始链接可来自于Redis,只需提供Redis-key信息,不用额外编写;
- 4、 抓取信息持久化支持CSV、JSON、MYSQL、REDIS、KAFAKA、MONGODB等几大类常用持久化工具;
- 5、 该框架主要是几大模块的组合,至于爬虫逻辑的实现,根据个人需求。
|-IPProxiesPool |--目录文件
|--ApiSrc |--Api测试
|--BaseFile |--基础配置
|---GetLocalFile.py |--读取本地文件,如URL
|---GetProxyIp.py |--获取代理IP
|---Logger.py |--配置logging日志
|---
ReadConfig.py |--读取配置文件
|---
UserAgent.py |--轮换请求头
|--Common |--公共操作类
|---CsvHelper.py |--操作CSV文件
|---JsonHelper.py |--操作JSON文件
|---KafkaHelper.py |--操作KAFKA文件
|---MongoHelper.py |--操作MONGODB文件
|---MysqlHelper.py |--操作MYSQL文件
|---RedisHelper.py |--操作REDIS文件
|--Config |--配置信息
|---HEADERS.py |--配置请求头
|---KAFKA |--KAFKA配置
|---MONGODB |--MONGODB配置
|---MYSQL |--MYSQL配置
|---PROXYIP |--代理IP配置
|---REDIS |--REDIS配置
|---PROXYCONFIG |--爬虫基本信息,代理验证及调度,redis评分key配置
|--Data |--文件存储目录
|--Logs |--Logs日志存储目录
|--Spider |--爬虫类
|---generateProxiesProcessor.py |--代理网站IP抓取
|---timerStartDaily.py |--代理网站周期更新调度
|--ProxiesClean |--代理IP调度验证类
|--ProxiesTest |--代理IP验证类
|--Scheduler |--代理IP验证调度器
- 爬虫抓取各大代理网站目前可用共计14个,见:Data/代理网站.xlsx,并存入redis原数据表proxiesinitial,并依IP为去重key存入proxiesDuplicates表,防止周期更新重新抓取及验证;
- 对表内数据逐条验证,通过百度和Telnet登录验证,并评分,初次评分,根据响应时长进行评分;
- 代理检验调度:原数据表,开启多进程方式验证,并根据评分对验证通过的IP存入到相应的评分代理池;相应的评分代理池开启内部自检过程,不断维护本池内代理IP活性检验,对于提供出去的IP,存入待检验池,对其重新评分并归类;
- 代理提供:根据评分优先规则,从评分高的池内优先获取可用IP并提供,若无则顺次从评分低的池内获取并提供,直至无可用IP;
- 未启用-升级版:初次验证只通过百度及telnet验证,但是否可访问目标抓取网址未知,因此设计目标网站验证,如果开启验证,则可对IP做正对性筛选,生成目标网站代理池,不过目前可用IP质量较低,生命周期短,因此未启用此功能;
响应时长: 0-1s: 10 分; 1-2s: 8 分; 2-3s: 6 分; 3-4s: 4 分; 4-5s: 2 分;
依次开启:
- ProxiesSpiderRun.py :代理网站抓取
- ProxiesCheckRun.py :代理网站初始表验证
- ProxiesRun.py : 运行代理池自检
- Api.py : 对外提供API