大小:1M更新:2022-02-10 13:57:51
类别:系统软件系统:WinAll
包名:
Crawlab是一个基于Golang的分布式爬虫管理平台。它支持Python、Node、Go、Java、PHP等编程语言以及多种爬虫框架。分为三种安装方式:Docker、直接部署、Kubernetes!
现在有一些爬虫管理框架,为什么要用Crawlab?
由于现有的很多平台都依赖于Scrappy,限制了爬虫的编程语言和框架,爬虫工程师只能使用scrapyd和python。当然,scrapy是一个优秀的爬虫框架,但它不能做所有的事情。
Crawlab使用起来非常方便和通用,几乎可以适用于任何主流语言和框架。它还有一个漂亮的前端界面,可以让用户方便地管理和运行爬虫。
Crawlab架构:
Crawlab的体系结构包括一个主节点和几个工作节点,以及负责通信和数据存储的Redis和MongoDB数据库。
前端应用向主节点请求数据,主节点通过MongoDB和Redis进行任务调度、调度和部署。工作节点收到任务后,开始执行爬虫任务,并将任务结果存储到MongoDB中。与v0.3.0之前的芹菜版本相比,架构简化,省去了不必要的节点监控模块Flower,节点监控主要由Redis完成。
主机节点
主节点是整个Crawlab架构的核心,属于Crawlab的中央控制系统。主节点负责与前端应用程序通信,并通过Redis将爬虫任务分配给工作节点。同时,主节点将通过Redis和MongoDB的GdFS将爬虫同步(部署)到工作节点。
工作节点
工作节点的主要功能是执行爬虫任务,存储捕获的数据和日志,并通过Redis的PubSub与主节点进行通信。通过增加工作节点的数量,Crawlab可以横向扩展,不同的爬虫任务可以分配给不同的节点执行。
MongoDB
MongoDB是Crawlab的运行数据库,存储节点、爬虫、任务、调度任务等数据。另外,GdFS文件存储方式是主节点存储爬虫文件,并同步到工作节点的中间介质。
使用心得
Redis是一个非常流行的Key-Value数据库,主要实现Crawlab中节点之间的数据通信功能。例如,一个节点会通过HSET将自己存储在Redis的节点哈希列表中,主节点会根据哈希列表判断在线节点。
前端
前端是基于Vue-Element-Admin的单页应用。许多元素用户界面控件被重用来支持相应的显示。