美文网首页大数据 爬虫Python AI Sql
Crawlab:初识分布式爬虫管理平台 Crawlab

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

作者: dex0423 | 来源:发表于2020-04-15 00:56 被阅读0次

    1. Crawlab 简介:

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

    2. Crawlab 作者团队:

    3. Crawlab Demo:

    • 首页:


      image.png
    • 爬虫列表:


      image.png
    • 爬虫详情 - 概览:


      image.png
    • 任务详情 - 抓取结果:


      image.png

    4. Crawlab 架构设计:

    • Crawlab 架构图:


      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

        本文链接:https://www.haomeiwen.com/subject/dxwfvhtx.html