前言
Crawlab 是开源分布式爬虫管理平台,近期发布了 v0.6 beta 版本,在性能、稳定性、易用性等方面做了大量的优化。它相对于之前的 v0.5 版本有什么区别?其中主要优化的部分主要是什么?作为 Crawlab 用户我是否应该迁移到新版本上?本篇文章将从新版本的新特性出发,介绍新老版本的主要区别,以及如何安装使用新版本,让对 Crawlab v0.6 新版本感兴趣的小伙伴更容易上手。
新特性介绍
众所周知,v0.6 新版本做了大量的底层优化,不过作者不打算介绍底层原理,我们将在之后的文章中详细介绍。这个小节将从使用方面主要介绍新版本的主要新功能和特性。
文件上传优化
在 Crawlab v0.6 版本之前,上传爬虫文件有 2 种方式:ZIP 打包或者使用 CLI 工具。ZIP 打包上传被证明是一种落后的方式,特别是遇到 Scrapy 项目,必须要求在 scrapy.cfg 所在目录(根目录)进行打包,否则 Crawlab 内置的 Scrapy 辅助工具将识别不出来,或者运行时因为目录层级结构不一致导致错误;此外,即使使用 CLI 上传,也会出现类似的目录层级结构问题。在新版本中,我们保留了 CLI 上传的方式,移除了 ZIP 上传方式,另外添加了拖拽、选择目录、选择文件等非 ZIP 打包上传文件的方式。
拖拽上传
拖拽上传非常简单,就跟在 IDE 里操作一样,将文件从操作系统目录中拖拽到文件编辑器导航栏其中一个目录上,即可上传。
选择目录上传
如果您想上传整个爬虫目录,同样可以在 Crawlab 新版本中操作。操作方式非常简单,点击文件上传按钮,点选目录,再点击上传按钮并选择待上传目录,就可以将整个爬虫项目上传到 Crawlab 了。
选择文件上传
除了拖拽上传和选择目录上传,Crawlab 也允许单独选择文件上传。操作方式跟选择目录上传类似。
文件编辑器优化
老版本 (v0.5) 的文件编辑器虽然可以做一些基础的文件编辑功能,但它似乎还不够像主流文件编辑器软件这样完善,说白了就是用得不爽。Crawlab 新版本在文件编辑器方面做了大量的优化,几乎是推倒重做。目的就是为了让用户在界面上操作文件更舒服,而不用勉强采用 “本地编辑再上传运行” 的蹩脚方式。很多时候,爬虫工程师需要及时调试代码,而 Crawlab 新版本希望通过这次优化让用户尽可能方便的在界面上操作文件,从而摆脱对本地编辑的依赖。除了之前提到的优化后的文件目录上传方式以外,Crawlab 文件编辑器还支持更多现代化代码编辑器功能,包括文件标签、右键菜单操作、拖拽移动、智能图标等功能。
文件标签
有时候编辑代码时需要多个文件同时操作,这在主流代码编辑器中都有实现,而 Crawlab 新版本也同样支持。
可以双击文件打开多个标签。
也可以点击文件标签来回切换。
还有更多复杂操作,例如拖拽和右键菜单操作。
右键菜单操作
Crawlab 文件编辑器可以右键点击左侧的文件或目录进行更多的操作,新建文件、新建目录、重命名、复制、删除,应有尽有。
拖拽移动
Crawlab 文件编辑器还可以像主流 IDE 那样拖拽移动文件或目录。
智能图标
很多人可能比较习惯 JebBrains IDEA 或 VS Code 等 IDE 中各种类别文件目录的自动指定图标,而 Crawlab 文件编辑器中也支持这个功能,让开发者可以一目了然的了解各个文件或目录是用做什么功能的。
Crawlab 文件编辑器的智能图标是基于 atom-material-icons 实现的。
表格功能优化
Crawlab 新版本中加强了表格的优化。表格是展现列表的有效方式,例如爬虫列表、任务列表等都是以表格形式展现的。Crawlab 在新版本中允许用户进行一些高级操作,例如搜索、筛选、自定义列等功能。
搜索
Crawlab 表格可以点击表头的筛选按钮搜索获取相关项。
筛选
用户也可以在 Crawlab 表格中进行筛选操作。
自定义列
用户可以在 Crawlab 表格中自定义想要展现或隐藏的列,还可以进行排序。
如何安装
看了上面一些新功能介绍,一些读者可能会迫不及待想要开始使用了。虽然 v0.6 还未发布正式版本,但想要尝鲜体验最新的 beta 版本还是很简单的,跟之前版本的 Docker 部署方式是类似的。这里介绍一下本地伪多节点部署(MND),只是做 Demo 用。其他部署方式包括生成环境部署请参考 官方文档。同时,你也可以参考官方文档中的 快速开始。
伪多节点部署步骤如下。
-
安装 Docker 和 Docker-Compose
-
创建
docker-compose.yml并进行配置,内容如下:version: '3.3' services: master: image: crawlabteam/crawlab:latest environment: CRAWLAB_NODE_MASTER: "Y" CRAWLAB_NODE_NAME: "Master Node" CRAWLAB_MONGO_HOST: "mongo" GOPROXY: https://goproxy.cn,direct ports: - "8080:8080" depends_on: - mongo worker01: image: crawlabteam/crawlab:latest environment: CRAWLAB_NODE_MASTER: "N" CRAWLAB_NODE_NAME: "Worker Node 01" CRAWLAB_GRPC_ADDRESS: "master" CRAWLAB_FS_FILER_URL: "http://master:8080/api/filer" GOPROXY: https://goproxy.cn,direct depends_on: - master worker02: image: crawlabteam/crawlab:latest environment: CRAWLAB_NODE_MASTER: "N" CRAWLAB_NODE_NAME: "Worker Node 02" CRAWLAB_GRPC_ADDRESS: "master" CRAWLAB_FS_FILER_URL: "http://master:8080/api/filer" GOPROXY: https://goproxy.cn,direct depends_on: - master mongo: image: mongo:4 restart: always -
执行
docker-compose pull拉取 Docker 镜像 -
执行
docker-compose up -d启动 Docker 容器
启动完毕之后,就可以在浏览器中打开 http://localhost:8080 访问 Crawlab 主界面。默认登陆用户名密码为 admin/admin。
总结
本文简单介绍了一下 Crawlab v0.6 beta 新版本中的部分新功能和特性。其中,本文图文并茂的介绍了文件上传、文件编辑器、表格高级功能几个非常实用的易用性方面的优化。当然,Crawlab 新版本中的优化和新特性还远不限于易用性,在后面的相关文章中,将介绍更多的新特性和功能,包括健壮性、可扩展性、可维护性方面的优化,例如插件框架等。
社区
如果您认为 Crawlab 对您的工作或学习有帮助,可以加作者微信 tikazyq1,在技术讨论群与 Crawlab 使用者和开发者进行交流和学习。同时,如果您认为 Crawlab 好用,请您分享给可能会需要爬虫管理平台的朋友,您的分享可能对别人产生重要的价值。