hunter分布式爬虫系统,主要目的是开发一个可配置的,可管可控的,支持通用,支持特殊定制的爬虫系统
各模块主要功能如下:
模块 | 名称 | 主要功能 | 备注 |
---|---|---|---|
爬虫管理中心 | hunter-master | 爬虫客户端注册 | 爬虫客户端向集群注册时调用的接口 |
接受爬虫客户端心跳 | 爬虫客户端向集群报告状态时调用的接口 | ||
爬虫集群状态监控 | 管理中心需要定时检查集群各个节点的状态信息 | ||
集群日志管理 | |||
处理申请爬虫任务的请求 | 爬虫客户端向集群申请任务时调用的接口 | ||
处理数据统计上报 | 爬虫客户端爬取到数据后报告给集群 | ||
爬虫客户端 | hunter-client | 向管理中心注册 | 向集群发起注册请求 |
向管理中心发送心跳 | 向集群报告健康状况 | ||
请求爬虫任务 | 机器空闲时向集群请求任务 | ||
日志处理 | 爬虫运行过程中日志向集群报告,集群统一处理 | ||
发送采集量到管理中心 | 数据发送消息队列成功,向集群报数 | ||
爬虫公用模块 | hunter-common | 实体类vo | 包含系统所有实体 |
工具类utlis | |||
数据库配置类config | Mysql,redis,kafka配置类 | ||
系统参数配置类config | 各种系统参数,如:心跳间隔,重新上线次数 | ||
自定义异常exception | |||
状态枚举enums | |||
请求类request | |||
响应类response | |||
服务接口inf | |||
常量参数constant | |||
爬虫任务调度模块 | hunter-secheduler | 生成任务 | 该模块主要用于生成种子爬虫任务,定时调度。生成任务分为两种类型,资源解析类和详情解析类 |
爬虫任务处理模块 | hunter-spirder | 爬取网页 | 根据配置信息爬取目标网页内容 |
解析网页 | 根据配置信息对网页做解析 | ||
网页去重 | 根据去重类型对爬取的内容去是否重复比较 | ||
增量任务 | 如果爬取的数据都是新数据就继续往后爬取,不能超过最大爬取页数 | ||
数据持久化 | 目前只有一种持久化插件:kafka可动态扩展 | ||
爬虫服务模块 | hunter-service | 爬虫任务测试服务 | |
爬虫任务提交 | |||
爬出任务停止 | |||
Cookie池所需账号密码测试 | 提供测试账号密码有效性的功能 | ||
获取集群节点信息 | |||
爬虫插件模块 | hunter-plugs | Cookie池插件 | 用于破解cookie反扒 |
IP代理插件 | 用于破解IP频率反扒 | ||
自动登陆插件 | 用于生成cookie池 | ||
持久化插件 | 用于保存数据,暂时只有kafka。可动态扩展 | ||
去重插件 | 数据去重的规则,暂时有:内容去重,URL去重。可动态扩展 |
分布式爬虫系统-hunter 305855967@qq.com