宝塔下安装 feaplat 教程

  • feaplat 命名源于 feapder 与 platform 的缩写,读音: [ˈfiːplæt]
  • feaplat 是一个爬虫管理平台,支持任何 python 脚本,包括不限于 feapderscrapy
  • feaplat 支持浏览器渲染,支持有头模式。浏览器支持 playwrightselenium

  1. 支持任何 python 脚本,包括不限于 feapderscrapy
  2. 支持浏览器渲染,支持有头模式。浏览器支持 playwrightselenium
  3. 支持部署服务,可自动负载均衡
  4. 支持服务器集群管理
  5. 支持监控,监控内容可自定义
  6. 支持起多个实例,如分布式爬虫场景
  7. 支持弹性伸缩
  8. 支持 4 种定时启动方式
  9. 支持自定义 worker 镜像,如自定义 java 的运行环境、机器学习环境等,即根据自己的需求自定义(feaplat 分为 master-调度端worker-运行任务端
  10. docker 一键部署,架设在 docker swarm 集群上
  • 市面上的爬虫管理系统

    worker 节点常驻,且运行多个任务,不能弹性伸缩,任务之前会相互影响,稳定性得不到保障

  • feaplat 爬虫管理系统

    worker 节点根据任务动态生成,一个 worker 只运行一个任务实例,任务做完 worker 销毁,稳定性高;多个服务器间自动均衡分配,弹性伸缩

安装准备

  • 安装宝塔
  • 在服务器的安全组防火墙中放行需要使用的端口,如:8090、8091(端口可以自定义)
  • 在宝塔的 安全 中放行需要使用的端口,如:8090、8091(端口可以自定义)

安装教程

  1. 安装 Docker

    在宝塔中的 软件商店 里安装 Docker 管理器 即可

  2. 配置 Docker 源

    在宝塔中的 Docker 管理器 里找到 镜像管理,然后点击 镜像加速,最后将以下内容任选其一填入 加速地址 里保存即可!

    1
    2
    3
    # 镜像加速
    https://hub-mirror.c.163.com
    https://mirror.baidubce.com
  3. 安装 docker swarm

    1
    2
    3
    4
    docker swarm init

    # 如果你的 Docker 主机有多个网卡,拥有多个 IP,必须使用 --advertise-addr 指定 IP
    docker swarm init --advertise-addr 192.168.99.100
  4. 安装 Docker-Compose

    1
    pip install docker-compose

    在安装了 pip 的情况下 (Python 3),执行上述命令即可。

  5. 安装 Git

    • CentOS
      1
      yum install git
    • Ubuntu
      1
      apt install git
  6. 克隆项目

    • GitHub
      1
      git clone https://github.com/Boris-code/feaplat.git
    • Gitee
      1
      git clone https://gitee.com/Boris-code/feaplat.git
  7. 修改默认端口号

    • 默认端口号
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      # 前端端口
      FRONT_PORT=80
      # 后端端口
      BACKEND_PORT=8000
      # MYSQL端口
      MYSQL_PORT=33306
      # REDIS 端口
      REDIS_PORT=6379
      # 后端worker数
      BACKEND_WORKER=1
      # 前端镜像
      FRONT_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder_front:2.0
      # 后端镜像
      BACKEND_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder_backend:3.1
      # 爬虫镜像
      SPIDER_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:2.1
      # 监控系统端口配置
      INFLUXDB_PORT_TCP=8086
      INFLUXDB_PORT_UDP=8089
      GRAFANA_PORT=3001
    • 修改默认端口号
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      # 前端端口
      FRONT_PORT=8090
      # 后端端口
      BACKEND_PORT=8091
      # MYSQL端口
      MYSQL_PORT=33306
      # REDIS 端口
      REDIS_PORT=6379
      # 后端worker数
      BACKEND_WORKER=1
      # 前端镜像
      FRONT_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder_front:2.0
      # 后端镜像
      BACKEND_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder_backend:3.1
      # 爬虫镜像
      SPIDER_IMAGE=registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:2.1
      # 监控系统端口配置
      INFLUXDB_PORT_TCP=8086
      INFLUXDB_PORT_UDP=8089
      GRAFANA_PORT=3001

      修改克隆项目中的 .env 文件,默认的前端端口和后端端口不太合适,在 docker 映射后会和 Nginx、Django 等冲突,建议修改,至于具体修改成多少可以自行定义,但是请尽量避开常用的一些端口!

  8. 运行项目

    1
    2
    cd feaplat
    docker-compose up -d

    若端口冲突,可修改 .env 文件,参考常见问题

  9. 访问爬虫管理系统

    • 默认地址:http://host:8090
    • 默认账密:admin / admin
    • http://host:8090 中端口 8090 为自己定义的前端端口
    • 若未成功,参考常见问题
    • 使用说明,参考使用说明
  10. 常用命令

1
2
3
4
5
6
7
8
# 停止容器
docker-compose stop

# 关闭并删除 Docker 容器
docker-compose down

# 启动 Docker 容器
docker-compose up -d
  • 对于占用存储空间来说,Crawlab 占用存储空间更小,feaplat 需要安装的镜像太多太大,占用存储空间也就更大,对于低配服务器不太友好。
    空间大小
  • 对于功能来说,Crawlab 的功能相对更全面,其中有很多 feaplat 没有却很实用的功能,集成度更高,更适合作为一个高可用性的爬虫管理平台。
  • 对于稳定性,Crawlab v5.x 会偶尔弹出类似 您的网络发生异常,无法连接服务器 这样的弹窗,但是实际上不影响使用,而 feaplat 相对更稳定,没有类似的弹窗。
  • feaplat 自带 Python 版本比较低 (<python3.8.x),如果使用比较高 Python 版本 (>=Python3.8.x) 的一些新语法 (如:海象表达式) 的时候会报错,Crawlab 自带的 Python 版本比较高所以不会出现这个问题。