基于Golang的分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架.
文档地址:https://docs.crawlab.cn/zh/
GitHub:https://github.com/crawlab-team/crawlab/blob/master/README-zh.md
Python版本:Python3.6.1
centos版本:centos 7.6
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
执行以下命令将 Crawlab 的镜像下载下来。镜像大小大概在几百兆,因此下载需要几分钟时间。
$ docker pull tikazyq/crawlab:latest
为了方便起见,我们用docker-compose的方式来部署。docker-compose是一个集群管理方式,可以利用名为docker-compose.yml的yaml文件来定义需要启动的容器,可以是单个,也可以(通常)是多个的。
在安装了 pip 的情况下(Python 3),执行以下命令。(如果提示没有pip,使用【python -m pip install docker-compose】 这种写法)
$ pip install docker-compose
安装好 docker-compose 后,请运行 docker-compose ps 来测试是否安装正常。正常的应该是显示如下内容。
Name Command State Ports
------------------------------
但是我们如果直接运行请运行 docker-compose ps 的话,会报错:
所以我们需要先找到配置文件:
$ find -name docker-compose.yml
然后运行
$ docker-compose ps
这是没有 Docker 容器在运行的情况,也就是空列表。如果有容器在运行,可以看到其对应的信息。
$ docker-compose up -d
待加载结束之后,在浏览器中输入 http://localhost:8080 就可以看到登录界面了
1、安装crawlab-sdk
pip install crawlab-sdk
2、登录获取 Token
在使用 CLI 命令行工具之前,我们必须配置登录信息,已确保本地保存从服务端请求回来的 token,作为后续请求的验证令牌。
# 登录并输入参数
crawlab login -u <username> -a <api_address>
# 例子
crawlab login -u admin -a http://localhost:8080/api
然后输入登录密码。
如果登录成功,CLI 会将用户名、密码、API 地址和获取到的 Token 保存在本地,供后面使用。
3、上传爬虫
注意,如果是scrapy项目,一定要在根目录下(即有scrapy.cfg的文件)使用该命令上传文件。且项目要与scrapy项目正常结构保持一致
crawlab upload