Crawlab
基于 Celery 的爬虫分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架.
截图
首页
爬虫列表
爬虫详情 - 概览
任务详情 - 抓取结果
架构
Crawlab 的架构跟 Celery 非常相似,但是加入了包括前端、爬虫、Flower 在内的额外模块,以支持爬虫管理的功能。
节点
节点其实就是 Celery 中的 Worker。一个节点运行时会连接到一个任务队列(例如 Redis )来接收和运行任务。所有爬虫需要在运行时被部署到节点上,用户在部署前需要定义节点的 IP 地址和端口。
爬虫
自动发现
在PROJECT_SOURCE_FILE_FOLDER作为爬虫项目所在的目录。Crawlab 后台程序会自动发现这些爬虫项目并储存到数据库中。是不是很方便?
部署爬虫
所有爬虫需要在抓取前被部署当相应当节点中。在"爬虫详情"页面点击"Deploy"按钮,爬虫将被部署到所有有效到节点中。
运行爬虫
部署爬虫之后,你可以在"爬虫详情"页面点击"Run"按钮来启动爬虫。一个爬虫任务将被触发,你可以在任务列表页面中看到这个任务。
任务
任务被触发并被节点执行。用户可以在任务详情页面中看到任务到状态、日志和抓取结果。
后台应用
这是一个 Flask 应用,提供了必要的 API 来支持常规操作,例如 CRUD、爬虫部署以及任务运行。每一个节点需要启动 Flask 应用来支持爬虫部署。运行python manage.py app或python ./bin/run_app.py来启动应用。
中间者