Crawlab
是强大的网络爬虫管理平台(WCMP),它能够运行多种编程语言(包括 Python、Go、Node.js、Java、C#)或爬虫框架(包括 Scrapy、Colly、Selenium、Puppeteer)开发的网络爬虫。它能够用来运行、管理和监控网络爬虫,特别是对可溯性、可扩展性以及稳定性要求较高的生产环境。

Crawlab 项目自 2019 年 3 月开始一直在不断迭代,并且经历了多次大的更新。它最初是用来解决调度和运行大量爬虫时出现的管理问题。随着大量的优化和新功能加入,Crawlab 越来越受到开发者社区的欢迎,尤其是网路爬虫工程师。
Crawlab 非常适合以下用户使用:
-
网路爬虫工程师:通过集成爬虫程序到 Crawlab,您可以聚焦于爬虫的核心解析逻辑,从而避免浪费过多时间在开发通用模块上,例如任务队列、存储、日志、消息通知等。 -
运维工程师:Crawlab 对于运维工程师来说最大的好处是部署便利(对于爬虫程序和 Crawlab 本身)。Crawlab 支持 Docker 或 Kubernetes 一键安装。 -
数据分析师:数据分析师如果能写代码(例如 Python),则可以开发爬虫程序(例如 Scrapy)然后上传到 Crawlab,然后就可以把所有脏活累活交给 Crawlab,它能够自动帮您抓取数据。 -
其他:准确的说,任何人都能够享受 Crawlab 自动化带来的便利。虽然 Crawlab 尤其擅长执行网络爬虫任务,但它不仅限于此,它能够被用来运行其他类型的任务,例如数据处理和自动化。
核心功能

架构
Crawlab 的整体架构如下图所示:

作为分布式系统,Crawlab 由几个模块组成,其中包括主节点、工作节点、数据库、文件系统以及前端。每个模块(目前除了节点)都具有可扩展性,因此整个分布式系统能够被灵活扩展以支持高性能需求。
例如,爬虫抓取任务被分配到工作节点集群,然后工作节点集群可以根据资源需求的变化来调整节点数量。
主节点
主节点是 Crawlab 分布式系统中的中心部分,主要负责管理工作节点、派发爬虫任务、以及接受发送信息给工作节点。
主节点由很多自模块组成,相比于工作节点更为复杂。您可以参考下图查看主节点的子模块。

工作节点
工作节点的主要负责任务执行,它从主节点接收爬虫任务并执行目标网站抓取爬虫程序。因此,您可以将工作节点看作执行器。它们并不会处理 API 请求、任务派发、以及其他主节点上的功能。
您可以查看下图工作节点子模块。

节点通信
主节点通过高性能 RPC 框架 gRPC
与工作节点进行通信。下图展示了 Crawlab 中节点通信的原理。

快速使用
Docker 是安装部署 Crawlab 最便捷的方式。Docker 部署有多种模式,不过其主流程是相似的。
保证你已经安装好 Docker,并能够拉取 Crawlab 和 MongoDB 的镜像。
docker pull crawlabteam/crawlab
docker pull mongo
如果还没安装 Docker Compose,您可以执行以下命令。
pip install docker-compose
然后创建配置文件并命名为 docker-compose.yml
,内容如下所示:
version: '3.3'
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
environment:
CRAWLAB_NODE_MASTER: "Y"
CRAWLAB_MONGO_HOST: "mongo"
ports:
- "8080:8080"
depends_on:
- mongo
mongo:
image: mongo:4.2
执行以下命令启动 Crawlab 以及 MongoDB 即可。
docker-compose up -d
现在就可以打开浏览器并导航到 http://localhost:8080
并开始使用 Crawlab 了。

在 Crawlab 中,爬虫是网络爬虫程序的基本单位。您可以将其看作一个爬虫软件项目,它由代码文件组成,例如 Scrapy 项目。
用户在 Crawlab 操作爬虫的典型流程如下所示:

要创建爬虫也是非常简单的,导航到 Spiders
页面,再点左上方的 New Spider
按钮,输入 Name
、Command
等相关信息,点击 Confirm
即可。

然后上传爬虫有几种方式。
上传目录
-
导航到爬虫详情页 -
点击 文件 标签 -
点击导航条上的 上传文件 按钮 -
选择 目录 -
点击 点击选择目录上传 -
选择爬虫文件所在目录 -
点击 确认
上传文件
-
导航到爬虫详情页 -
点击 文件 标签 -
点击导航条上的 上传文件 按钮 -
选择 文件 -
拖拽爬虫文件到放置区,或直接点击放置区并选择爬虫文件 -
点击 确认
上传文件 (拖拽)
-
导航到爬虫详情页 -
点击 文件 标签 -
拖拽爬虫文件或目录到左侧导航栏的目录里

然后可以根据以下步骤来运行爬虫
-
如果您在爬虫详情页,点击导航条上名为 运行 的播放按钮 -
如果您在 爬虫列表 页面,点击右侧名为 运行 的播放按钮 -
选择合适的爬虫运行设置 -
点击 确认
然后是爬虫运行设置的解释。
-
执行命令: 将被实际运行的 cmd/bash/shell 基础命令 -
执行参数: 被传入 执行命令 的参数 -
模式: 运行模式,默认为 随机节点. -
优先级: 任务优先级,默认为 5

Git 仓库:https://github.com/crawlab-team/crawlab
原文始发于微信公众号(Github爱好者):Go 语言开发的超强企业级爬虫管理平台 – Crawlab
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/121653.html