instalación de laboratorio de rastreo

0.6.0beta actualmente tiene problemas. Se recomienda usar la versión estable antes de usar 0.5.x antes de que se publique la versión estable.

Crawlab0.6.0-beta.20211224

Siga los pasos en el inicio rápido del documento 0.6.0 (Docker debe instalarse con anticipación):

  1. docker pull crawlabteam/crawlab
  2. # docker pull mongo está configurado para usar su propio MongoDB en lugar de Crawlab, por lo que no es necesario instalar este paso
  3. pip install docker-compose
  4. Cree un archivo de configuración en el servidor como el nodo maestro y asígnele el nombre docker-compose.yml e ingrese el siguiente contenido. El contenido del siguiente archivo no está en el inicio rápido , sino en Docker - MongoDB externo , concretamente en el comentario de la primera línea del código de abajo. Además, CRAWLAB_MONGO_URI y CRAWLAB_MONGO_AUTHMECHANISM y CRAWLAB_MONGO_AUTHMECHANISMPROPERTIES no saben qué es útil, así que comenté
  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>  # 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>  # mongo auth mechanism 
          # CRAWLAB_MONGO_AUTHMECHANISMPROPERTIES: <mongo_auth_mechanism_properties>  # mongo auth mechanism properties
        volumes:
          - "/opt/crawlab/master:/data"  # 持久化 crawlab 数据
        ports:
          - "8080:8080"  # 开放 api 端口
          - "9666:9666"  # 开放 grpc 端口

  6. Cree docker-compose.yml en el servidor como nodo de trabajo e ingrese el siguiente contenido. Es posible que el nodo de trabajo deba tener una IP de red pública, porque utilizo el servidor Tencent Cloud como nodo maestro y CentOS en la máquina virtual local como nodo de trabajo, y luego la página de Crawlab no muestra el nodo de trabajo en el máquina virtual, solo el servidor Tencent Cloud. El nodo principal; busque otro servidor como nodo de trabajo, y el nodo de trabajo del nuevo servidor se mostrará en la página 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: <master_node_ip>:9666  # grpc address。需将<master_node_ip>替换为主节点IP,并保证其能被工作节点访问
          CRAWLAB_FS_FILER_URL: http://<master_node_ip>:8080/api/filer  # seaweedfs api
        volumes:
          - "/opt/crawlab/master:/data"  # 持久化 crawlab 数据

  8. Ejecute docker-compose up -d en la carpeta donde se encuentran el yml del nodo principal y el nodo de trabajo para iniciar el contenedor. Si se produce un error, ejecute docker-compose down para cerrar y eliminar el contenedor actual, y luego vuelva a intentarlo. pasos anteriores. Además, docker-compose stop es para detener el contenedor, y docker-compose ps es para enumerar el contenedor y el estado del contenedor.
  9. Abra el nodo maestro ip: 8080 en el navegador e ingrese a la página de Crawlab. La contraseña de cuenta predeterminada es admin. Dado que los nodos de trabajo se conectan al nodo principal a través de los puertos 8080 (API) y 9666 (gRPC), debe asegurarse de que estén abiertos y que el firewall del nodo principal no los deshabilite.
  10. En la lista en el lado izquierdo de la página de Crawlab, cambie la contraseña a f9j4R1S9r3k4D8v2 (contraseña escrita casualmente), y el idioma se puede configurar en la esquina superior derecha de la página

No se recomienda cambiar el nombre de usuario admin a otro nombre. Hay un problema en las ediciones comunitarias 0.6.0 y 0.5.x actuales. Después de cambiar el nombre, incluso si el usuario admin se elimina manualmente en MongoDB, siempre y cuando a medida que se reinicia Docker, el administrador se regenerará automáticamente. El usuario y la contraseña siguen siendo el administrador predeterminado, por lo que otros pueden usar el administrador para iniciar sesión en la página de Crawlab.

Ejecutar un rastreador de un solo archivo en Crawl es un rastreador con solo un archivo py. Después de ejecutarlo, no sé por qué se borrará el código del archivo ; ejecutar scrapy no tiene este problema.

Crawlab0.5.1

Los pasos generales son aproximadamente los mismos que en 0.6.0beta.

  1. docker pull tikazyq/crawlab:último, diferente de 0.6.0beta
  2. pip install docker-compose
  3. Cree un archivo de configuración en el servidor como el nodo maestro y asígnele el nombre docker-compose.yml e ingrese el siguiente contenido.
  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://<your_api_ip>:<your_api_port>"  # 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: [email protected]  # sender email 发送者邮箱
          # CRAWLAB_NOTIFICATION_MAIL_SENDERIDENTITY: [email protected]  # 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. Cree docker-compose.yml en el servidor como nodo de trabajo e ingrese el siguiente contenido. Los nodos de trabajo deben tener una IP pública.
  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. Ejecute docker-compose up -d en la carpeta donde se encuentran el yml del nodo maestro y el nodo trabajador para iniciar el contenedor, igual que 0.6.0beta.
  8. Abra el nodo maestro ip: 8080 en el navegador e ingrese a la página de Crawlab. La contraseña de cuenta predeterminada es admin. 0.5.1 no tiene el puerto 9666 en 0.6.0beta
  9. En la lista en el lado izquierdo de la página de Crawlab, cambie la contraseña a f9j4R1S9r3k4D8v2 (contraseña escrita casualmente)

Al agregar un rastreador en Crawlab0.5.1, es mejor completar manualmente los resultados, de lo contrario, después de que se ejecute el rastreador, aunque hay registros en los detalles de la tarea, es posible que no haya datos en los resultados, es decir, no hay datos en la base de datos. Si no hay datos después de completarlos, puede esperar unos segundos después de que finalice el rastreador y luego actualizar la página. Actualización: si no completa manualmente los resultados, los datos estarán en una colección llamada indefinida, porque aunque dice que no se debe escribir al agregar un rastreador, se colocará en la colección results_<spider_name> de forma predeterminada, pero una vez completada la adición, puede verla cuando ejecuta el rastreador. Cuando el conjunto de resultados vuelve a ser indefinido, indefinido es el nombre del conjunto de resultados.

Es mejor completar los resultados manualmente
Si no completa manualmente los resultados al agregar un rastreador, el conjunto de resultados se mostrará indefinido cuando ejecute el rastreador después de que se complete la adición, e indefinido es el nombre del conjunto de resultados.

 

Después de que se ejecuta el rastreador Crawlab0.5.1, la cantidad de resultados en la descripción general puede ser incorrecta. Es mejor verificar el volumen de datos en la base de datos, o verificar el volumen de datos en la última página de los resultados (porque se muestran 10 elementos por página por defecto). De hecho, rastreé 100 piezas de datos, y la cantidad de resultados en la descripción general muestra 80, pero hay 100 piezas en la base de datos, y los datos en la última página (es decir, la décima página) en los resultados son 10 piezas ( indicando que los datos completos efectivamente han sido rastreados).

El número de resultados en el resumen puede ser incorrecto

En los resultados, vea si la cantidad de datos en la última página es correcta (porque se muestran 10 elementos en cada página de forma predeterminada)

Supongo que te gusta

Origin blog.csdn.net/fj_changing/article/details/124371916
Recomendado
Clasificación