Crawlab安装

Crawlab安装0 6 0beta 目前有问题 建议稳定版出了再用 稳定版出之前先用 0 5 x Crawlab0 6 0 beta 按照 0 6 0 文档快速开始中的步骤 需提前安装 Docker dockerpullcr crawlab dockerpullmo 后面设置了使用自己的 MongoDB 不用 Crawlab 的 所以这一步不用装 pipinstalldo compose 在作为主节点的服务器创建配置文件并命名为 docker compose

0.6.0beta目前有问题,建议稳定版出了再用,稳定版出之前先用0.5.x。

Crawlab0.6.0-beta.

按照0.6.0文档快速开始中的步骤(需提前安装Docker):

  1. docker pull crawlabteam/crawlab
  2. # docker pull mongo 后面设置了使用自己的MongoDB,不用Crawlab的,所以这一步不用装
  3. pip install docker-compose
  4. 在作为主节点的服务器创建配置文件并命名为docker-compose.yml,然后输入以下内容。下面的文件内容并不是快速开始中的,而是Docker – 外部 MongoDB中的,具体在下面代码第一行的注释。另外,CRAWLAB_MONGO_URI和CRAWLAB_MONGO_AUTHMECHANISM和CRAWLAB_MONGO_AUTHMECHANISMPROPERTIES不知道有什么用,所以我注释掉了
  5. # from https://docs-next.crawlab.cn/zh/guide/installation/docker.html#%E5%A4%96%E9%83%A8-mongodb,这个文档是Crawlab0.6.0的文档,这个文档的链接来自https://github.com/crawlab-team/crawlab英文README中超链接Documentation (v0.6-beta)
    # 外部 MongoDB 的主节点
    version: '3.3'
    services:
      master:
        image: crawlabteam/crawlab
        container_name: crawlab_master
        restart: always
        environment:
          CRAWLAB_NODE_MASTER: Y  # Y: 主节点
          # CRAWLAB_MONGO_URI: 
        
        
        
        
        
        
        
          # mongo uri (单独设置) CRAWLAB_MONGO_HOST: your host # mongo host address CRAWLAB_MONGO_PORT: '27017' # mongo port CRAWLAB_MONGO_DB: 'crawlab' # mongo database,没有数据库会自动创建 CRAWLAB_MONGO_USERNAME: your username # mongo username CRAWLAB_MONGO_PASSWORD: your password # mongo password CRAWLAB_MONGO_AUTHSOURCE: 'admin' # mongo auth source # CRAWLAB_MONGO_AUTHMECHANISM: 
         
           # mongo auth mechanism # CRAWLAB_MONGO_AUTHMECHANISMPROPERTIES: 
          
            # mongo auth mechanism properties volumes: - "/opt/crawlab/master:/data" # 持久化 crawlab 数据 ports: - "8080:8080" # 开放 api 端口 - "9666:9666" # 开放 grpc 端口 
           
          
        
  6. 在作为工作节点的服务器创建docker-compose.yml,然后输入以下内容。工作节点可能需要有公网IP,因我将腾讯云服务器作为主节点,将本地虚拟机里的CentOS作为工作节点,然后Crawlab页面中不显示虚拟机中的工作节点,只显示腾讯云服务器中的主节点;再另外找一台服务器作为工作节点,Crawlab页面中就显示这个新服务器的工作节点了。
  7. # 工作节点 version: '3.3' services: worker: image: crawlabteam/crawlab container_name: crawlab_worker restart: always environment: CRAWLAB_NODE_MASTER: N # N: 工作节点 CRAWLAB_GRPC_ADDRESS: 
        
          :9666 # grpc address。需将 
         
           替换为主节点IP,并保证其能被工作节点访问 CRAWLAB_FS_FILER_URL: http:// 
          
            :8080/api/filer # seaweedfs api volumes: - "/opt/crawlab/master:/data" # 持久化 crawlab 数据 
           
          
        
  8. 分别在主节点和工作节点的yml所在文件夹中执行docker-compose up -d以启动容器,如果出错可以执行docker-compose down关闭并删除当前容器,然后重试前面的步骤。另外docker-compose stop是停止容器,docker-compose ps是列出容器和容器状态。
  9. 浏览器打开主节点ip:8080,进入Crawlab页面,默认帐号密码都是admin。由于工作节点是通过端口8080(API)以及9666(gRPC)来连接主节点的,您需要保证它们都是处于开放状态,没有被主节点防火墙所禁用。
  10. 在Crawlab页面左侧列表中用户处修改密码为f9j4R1S9r3k4D8v2(随便打的密码),页面右上角可设置语言
  11. Crawlab安装

不建议将用户名admin修改为其他名字,目前0.6.0和0.5.x的社区版有一个问题,修改名字后即便在MongoDB中手动删除admin用户,然后只要一重启Docker,就会自动再生成admin用户,密码还是默认的admin,这样别人就可以用admin登录Crawlab页面。

在Crawl中运行单文件爬虫,就是只有一个py文件的爬虫,运行完成后不知道为什么文件里的代码会被清空;运行scrapy没这个问题。

Crawlab0.5.1

总体步骤大致和0.6.0beta相同。

  1. docker pull tikazyq/crawlab:latest,和0.6.0beta不同
  2. pip install docker-compose
  3. 在作为主节点的服务器创建配置文件并命名为docker-compose.yml,然后输入以下内容。
  4. # from https://docs.crawlab.cn/zh/Installation/Docker.html中安装并启动Crawlab,这个文档的链接来自https://github.com/crawlab-team/crawlab英文README中超链接Documentation
    # 以下内容只保留了原文档中master部分,删除了其余内容,同时删除了master中的depends_on,它是启用容器中的数据库,而我要用我自己的数据库,另外还开启了日志持久化,文档中建议生产环境开启它。
    # 另外,原文档中将主节点和工作节点的信息写在同一个yml文件中,我觉得如果只有一台机器,那么在一台机器中建立两个节点没有意义,所以主节点的yml我只保留了主节点的信息。这点参考了0.6.0beta的节点配置,它就是主节点和工作节点用不同的文件配置的。
    version: '3.3'
    services:
      master: 
        image: tikazyq/crawlab:latest
        container_name: master
        environment:
          # CRAWLAB_API_ADDRESS: "https://
        
        
        
        
        
        
        
          : 
         
           " # backend API address 后端 API 地址. 适用于 https 或者源码部署 CRAWLAB_SERVER_MASTER: "Y" # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N CRAWLAB_MONGO_HOST: your host # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称 CRAWLAB_MONGO_PORT: "27017" # MongoDB port MongoDB 的端口 CRAWLAB_MONGO_DB: "crawlab" # MongoDB database MongoDB 的数据库 CRAWLAB_MONGO_USERNAME: your username # MongoDB username MongoDB 的用户名 CRAWLAB_MONGO_PASSWORD: your password # MongoDB password MongoDB 的密码 CRAWLAB_MONGO_AUTHSOURCE: "admin" # MongoDB auth source MongoDB 的验证源 CRAWLAB_REDIS_ADDRESS: your host # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称 CRAWLAB_REDIS_PORT: "6379" # Redis port Redis 的端口 CRAWLAB_REDIS_DATABASE: your redis database index # Redis database Redis 的数据库 CRAWLAB_REDIS_PASSWORD: your password # Redis password Redis 的密码 # CRAWLAB_LOG_LEVEL: "info" # log level 日志级别. 默认为 info # CRAWLAB_LOG_ISDELETEPERIODICALLY: "N" # whether to periodically delete log files 是否周期性删除日志文件. 默认不删除 # CRAWLAB_LOG_DELETEFREQUENCY: "@hourly" # frequency of deleting log files 删除日志文件的频率. 默认为每小时 CRAWLAB_SERVER_REGISTER_TYPE: "ip" # node register type 节点注册方式. 默认为 mac 地址,也可设置为 ip(防止 mac 地址冲突) CRAWLAB_SERVER_REGISTER_IP: 主节点ip # node register ip 节点注册IP. 节点唯一识别号,只有当 CRAWLAB_SERVER_REGISTER_TYPE 为 "ip" 时才生效 # CRAWLAB_TASK_WORKERS: 8 # number of task executors 任务执行器个数(并行执行任务数) # CRAWLAB_RPC_WORKERS: 16 # number of RPC workers RPC 工作协程个数 # CRAWLAB_SERVER_LANG_NODE: "Y" # whether to pre-install Node.js 预安装 Node.js 语言环境 # CRAWLAB_SERVER_LANG_JAVA: "Y" # whether to pre-install Java 预安装 Java 语言环境 # CRAWLAB_SETTING_ALLOWREGISTER: "N" # whether to allow user registration 是否允许用户注册 # CRAWLAB_SETTING_ENABLETUTORIAL: "N" # whether to enable tutorial 是否启用教程 # CRAWLAB_NOTIFICATION_MAIL_SERVER: smtp.exmaple.com # STMP server address STMP 服务器地址 # CRAWLAB_NOTIFICATION_MAIL_PORT: 465 # STMP server port STMP 服务器端口 # CRAWLAB_NOTIFICATION_MAIL_SENDEREMAIL: # sender email 发送者邮箱 # CRAWLAB_NOTIFICATION_MAIL_SENDERIDENTITY: # sender ID 发送者 ID # CRAWLAB_NOTIFICATION_MAIL_SMTP_USER: username # SMTP username SMTP 用户名 # CRAWLAB_NOTIFICATION_MAIL_SMTP_PASSWORD: password # SMTP password SMTP 密码 ports: - "8080:8080" # frontend port mapping 前端端口映射 volumes: - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化 
          
        
  5. 在作为工作节点的服务器创建docker-compose.yml,然后输入以下内容。工作节点需要有公网IP。
  6. # 以下内容复制的主节点的,删除了主节点中注释掉的项,修改了container_name和CRAWLAB_SERVER_MASTER和CRAWLAB_SERVER_REGISTER_IP,注释掉了ports。这么做的原因是参考了https://docs.crawlab.cn/zh/Installation/MultiNode.html中部署工作节点部分
    version: '3.3'
    services:
      master: 
        image: tikazyq/crawlab:latest
        container_name: worker
        environment:
          CRAWLAB_SERVER_MASTER: "N"  # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N
          CRAWLAB_MONGO_HOST: your host  # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称
          CRAWLAB_MONGO_PORT: "27017"  # MongoDB port MongoDB 的端口
          CRAWLAB_MONGO_DB: "crawlab"  # MongoDB database MongoDB 的数据库
          CRAWLAB_MONGO_USERNAME: your username  # MongoDB username MongoDB 的用户名
          CRAWLAB_MONGO_PASSWORD: your password  # MongoDB password MongoDB 的密码
          CRAWLAB_MONGO_AUTHSOURCE: "admin"  # MongoDB auth source MongoDB 的验证源
          CRAWLAB_REDIS_ADDRESS: your host  # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称
          CRAWLAB_REDIS_PORT: "6379"  # Redis port Redis 的端口
          CRAWLAB_REDIS_DATABASE: your redis database index  # Redis database Redis 的数据库
          CRAWLAB_REDIS_PASSWORD: your password  # Redis password Redis 的密码
          CRAWLAB_SERVER_REGISTER_TYPE: "ip"  # node register type 节点注册方式. 默认为 mac 地址,也可设置为 ip(防止 mac 地址冲突)
          CRAWLAB_SERVER_REGISTER_IP: 当前工作节点ip  # node register ip 节点注册IP. 节点唯一识别号,只有当 CRAWLAB_SERVER_REGISTER_TYPE 为 "ip" 时才生效
        # 工作节点不需要对外暴露端口
        # ports:    
        #   - "8080:8080" # frontend port mapping 前端端口映射
        volumes:
          - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化
  7. 分别在主节点和工作节点的yml所在文件夹中执行docker-compose up -d以启动容器,同0.6.0beta。
  8. 浏览器打开主节点ip:8080,进入Crawlab页面,默认帐号密码都是admin。0.5.1没有0.6.0beta中的9666端口
  9. 在Crawlab页面左侧列表中用户处修改密码为f9j4R1S9r3k4D8v2(随便打的密码)

Crawlab0.5.1添加爬虫时,最好手动填上结果,否则爬虫运行结束后,任务详情中虽然有日志,但可能结果中没数据,也就是数据库中也没数据。若填上了也没数据,可以爬虫结束后等几秒再刷新页面。更新:如果没手动填上结果,数据会在一个叫undefined的集合中,因虽然添加爬虫时它说了不写的话默认放到results_

集合中,但添加完成后,运行爬虫时能看到结果集又变成undefined了,undefined就是结果集的名字。

Crawlab安装
最好手动填上结果

Crawlab安装
添加爬虫时若不手动填结果,则添加完成后运行爬虫时结果集显示undefined,undefined就是结果集的名字

 

Crawlab0.5.1爬虫运行结束后,概览中的结果数可能不对,最好去数据库中查看数据量对不对,或者去结果中看最后一页的数据量对不对(因默认每页展示10条)。我实际爬了100条数据,概览中的结果数显示80,但数据库中是100条,结果中最后一页(即第十页)的数据是10条(说明确实爬到完整数据了)。

Crawlab安装
概览中的结果数可能不对

Crawlab安装
结果中看最后一页的数据量对不对(因默认每页展示10条)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201315.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:37
下一篇 2026年3月20日 上午9:37


相关推荐

  • php调用webservice

    php调用webservice

    2021年7月9日
    84
  • kermit使用总结

    kermit使用总结机上一片文字噶不 kermit nbsp 功能 nbsp 一个串口传工具 可以传送文件 nbsp 用于 pc 串口通信 描述 nbsp C kermit 是一款集成了网络通信 串口通信的工具 它有如下多种功能 nbsp 1 支持 kermit 文件传输协议 nbsp 2 自定义了一种脚本语言 它强大而易于使用 可用于自动化工作 nbsp 3 无论是网络通信 还是串口通信 操作是一致的 并支持多种硬件 软件平台 nbsp 4 有安

    2026年3月19日
    1
  • 离散 单射 满射 双射

    离散 单射 满射 双射单射双射满射阐述一下什么是单射,双射,满射1.单射:对于每一个不同的x都有不同的y,即x1!=x2–>y1!+y2条件:|X|<=|Y|2.满射:对于每一个y都有x与之对应条件:|Y|<=|X|3.双射:既是单射又是满射条件:|X|=|Y|代码实现通过map函数建立映射1.单射:map<int,int>BuildInjection(vector<int>src,vector<int>dst){map&l

    2022年6月10日
    36
  • 《Java编程思想》总结

    《Java编程思想》总结语言实际上是帮助程序员更容易地操作计算机的工具,选择何种语言来编程,是Java还是C++,本质上相当于“选择腾讯视频还是优酷视频来观看电视节目(那么选择汇编语言就是选择了电视机)”。正如腾讯视频是腾讯公司的产品,Java是美国公司Sun的产品。希望读者能明白:语言只是工具。

    2022年7月9日
    23
  • excel自学第1天_excel制作项目时间进度表_excel表头

    excel自学第1天_excel制作项目时间进度表_excel表头一 前言本节课使用 excel 制作项目进度表 二 操作步骤 F4 重复上一步操作字体选择微软雅黑 看起来商务一些 字号 10 或 11 行高 15 35 25 左右比较舒服 斜线表头制作方法 需要换行的地方安装 alt 回车 使其换行 单击单元格 右键 设置单元格格式 边框 第一行再前面加几个空格进行调整三 效果图

    2026年3月17日
    1
  • 华为云 Versatile 智能体平台 两步即可生成 Agent

    华为云 Versatile 智能体平台 两步即可生成 Agent

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号