Crawlab:初识分布式爬虫管理平台 Crawlab

1. Crawlab 简介:

  • Crawlab(参见 https://crawlab.cn/),是一个基于Golang的分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架;
  • Crawlab,目前可实现的功能包括定时任务、数据分析、可配置爬虫、SDK、消息通知、Scrapy 支持、Git 同步等;
  • Crawlab,主要解决的是大量爬虫管理困难的问题,例如需要监控上百个网站的参杂scrapy和selenium的项目不容易做到同时管理,而且命令行管理的成本非常高,还容易出错;
  • Crawlab,支持任何语言和任何框架,配合任务调度、任务监控,很容易做到对成规模的爬虫项目进行有效监控管理。

2. Crawlab 作者团队:

  • MarvinZhang89(参见 MarvinZhang89 的主页);
  • Crawlab Team(参见 Crawlab Team 的Github主页);

3. Crawlab Demo:

  • 首页:


    Crawlab:初识分布式爬虫管理平台 Crawlab_第1张图片
    image.png
  • 爬虫列表:


    Crawlab:初识分布式爬虫管理平台 Crawlab_第2张图片
    image.png
  • 爬虫详情 - 概览:


    Crawlab:初识分布式爬虫管理平台 Crawlab_第3张图片
    image.png
  • 任务详情 - 抓取结果:


    Crawlab:初识分布式爬虫管理平台 Crawlab_第4张图片
    image.png

4. Crawlab 架构设计:

  • Crawlab 架构图:


    Crawlab:初识分布式爬虫管理平台 Crawlab_第5张图片
    image.png
  • 如上图,Crawlab由五大部分组成:
    -- 主节点(Master Node):负责任务派发、API、部署爬虫等;
    -- 工作节点(Worker Node):负责执行爬虫任务;
    -- MongoDB数据库:存储节点、爬虫、任务等日常运行数据;
    -- Redis数据库:储存任务消息队列、节点心跳等信息;
    -- 前端客户端:Vue应用,负责前端交互和向后端请求数据;

  • 执行爬虫任务的大致流程:
    1. 前端向主节点发起请求,要求指定在某一工作节点执行任务;
    2. 主节点收到该请求,并将任务数据推送到Redis任务队列中;
    3. 工作节点持续监听Redis任务队列,并利用LPOP获取任务;
    4. 工作节点执行任务,并将结果写回到储存数据库;

  • Crawlab 架构详解:
    总的来说,可以将主节点看作是Crawlab整体架构的中控系统,理解为Crawlab的大脑;工作节点是实际干活的部分,是Crawlab的运动躯体;MongoDB和Redis是负责通信交流的,可以看作Crawlab的血液和神经网络。这些模块一起构成了一个完整、自洽、相互协作的系统。

如欲了解更多关于 Crawlab 的架构设计,请参考:爬虫平台Crawlab核心原理--分布式架构、 分布式通用爬虫管理平台Crawlab等文章。

5. Crawlab 与其他框架比较

Crawlab使用起来很方便,也很通用,可以适用于几乎任何主流语言和框架。它还有一个精美的前端界面,让用户可以方便的管理和运行爬虫。

框架 类型 分布式 前端 依赖于Scrapyd
Crawlab 管理平台 Y Y N
Gerapy 管理平台 Y Y Y
SpiderKeeper 管理平台 Y Y Y
ScrapydWeb 管理平台 Y Y Y
Scrapyd 网络服务 Y N N/A

参考文章:https://www.jianshu.com/p/866faad66b48

你可能感兴趣的:(Crawlab:初识分布式爬虫管理平台 Crawlab)