Giter VIP home page Giter VIP logo

hunter-parent's Introduction

分布式爬虫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 [email protected]

hunter-parent's People

Contributors

awsekfozc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.