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
▲ 点击上方卡片关注Github爱好者,获取前沿开源作品Git 仓库:https://github.com/crawlab-team/crawlab