爬虫管理平台 Crawlab 使用指南

676 阅读3分钟

安装

最快安装 Crawlab 的方式是 [Docker]如果您对 Docker 不熟悉,您可以参考Docker官网,并将其安装在您本地.

原文链接为官方文档Crawlab 中文文档

一 快速开始

1拉取镜像

保证您已经安装好 Docker,并能够拉取 Crawlab 和 MongoDB 的镜像。

docker pull crawlabteam/crawlab
docker pull mongo

如果您还没安装 Docker Compose (opens new window),您可以执行以下命令。

pip install docker-compose

2配置 docker-compose.yml

创建配置文件并命名为 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

3启动 Crawlab

执行以下命令启动 Crawlab 以及 MongoDB。

docker-compose up -d

现在您可以打开浏览器并导航到 http://localhost:8080 并开始使用 Crawlab。 这是最小化配置的 Crawlab,您可以通过该演示环境来体验大多数功能。您 不能 在生产环节中使用该配置。

二 单节点部署

单节点部署(SND)  与 快速开始 中的配置类似,它通常用作演示或少量爬虫管理。在 SND 中,所有 Docker 容器 (包括 Crawlab 和 MongoDB) 都在单独一台机器上,即主节点(如上图)。

创建 docker-compose.yml 并输入如下内容。

version: '3.3'
services:
  master:
    image: crawlabteam/crawlab
    container_name: crawlab_master
    restart: always
    environment:
      CRAWLAB_NODE_MASTER: Y  # Y: 主节点
      CRAWLAB_MONGO_HOST: mongo  # mongo host address. 在 Docker-Compose 网络中,直接引用 service 名称
      CRAWLAB_MONGO_PORT: 27017  # mongo port 
      CRAWLAB_MONGO_DB: crawlab  # mongo database 
      CRAWLAB_MONGO_USERNAME: username  # mongo username
      CRAWLAB_MONGO_PASSWORD: password  # mongo password 
      CRAWLAB_MONGO_AUTHSOURCE: admin  # mongo auth source 
    volumes:
      - "/opt/crawlab/master:/data"  # 持久化 crawlab 数据
    ports:
      - "8080:8080"  # 开放 api 端口
    depends_on:
      - mongo

  mongo:
    image: mongo:4.2
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: username  # mongo username
      MONGO_INITDB_ROOT_PASSWORD: password  # mongo password
    volumes:
      - "/opt/crawlab/mongo/data/db:/data/db"  # 持久化 mongo 数据
    ports:
      - "27017:27017"  # 开放 mongo 端口到宿主机

注意: 启动python爬虫用python spider.py 不要用python3 spider.py 否则会出现依赖未安装错误

执行 docker-compose up -d 并在浏览器中导航至 http://<your_ip>:8080,然后开始使用 Crawlab

总结:

Docker 部署有多种模式,不过其主流程是相似的。

  1. 安装 Docker (opens new window)和 Docker-Compose(opens new window)
  2. 拉取 Crawlab Docker 镜像(如果没有 MongoDB,也需要拉取)
  3. 创建 docker-compose.yml 并进行配置
  4. 启动 Docker 容器

三 主要问题处理

1 执行启动命令:docker-compose up 出现错误ERROR: Encountered errors while bringing up the project 配置文件出错,或者镜像文件出错。 解决方案如下:

1 docker ps -a
2 docker stop ID
  docker rm ID
3 docker images     
4 docker -rmi ID
 如果无法删除:
 Error response from daemon: conflict: unable to delete 9364575df985 (must be forced) - image is being used by stopped container 087f3961826f
重复第一步,第二步

5 docker pull crawlabteam/crawlab
  docker pull mongo
6 修改docker-compose.yml文件
7 启动docker-compose up -d 

2 启动时端口被占用Error starting userland proxy: listen tcp4 0.0.0.0:27017: bind: address already in use ERROR: Encountered errors while bringing up the project. 解决方案如下:

1查看端口是否被占用
sudo lsof -i :27017
2如果被占用,直接kill掉
sudo kill -9 PID

3 未安装依赖

1开启爬虫命令用 python spider.py 而不是python3 spider.py
2启动docke安装依赖,在页面上安装比较慢
命令如下:

docker ps
docker exec -it 739e2bc8ece6 /bin/bash
pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
安装以后在启动爬虫即可