Skip to content

awsekfozc/hunter-parent

Repository files navigation

分布式爬虫MD

hunter分布式爬虫系统,主要目的是开发一个可配置的,可管可控的,支持通用,支持特殊定制的爬虫系统

爬虫技术结构

image_1bjp7fktl12io1f951k321k4i2ju9.png-34.2kB

爬虫功能模块结构图

image_1bj4kpkid1v2a1nng1pk7sf91mv09.png-32.9kB

各模块主要功能如下:

模块 名称 主要功能 备注
爬虫管理中心 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去重。可动态扩展

爬虫技术结构图

image_1bj4kqppd16961h7iiipd3t1k5b9.png-95.4kB


分布式爬虫系统-hunter 305855967@qq.com

About

分布式爬虫系统-hunter

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published