AI数据爬虫工具Firecrawl部署安装及Dify调用方法

#新星杯·14天创作挑战营·第11期#
简介

Firecrawl 是一个可以提供 API 服务的开源爬虫工具,我们只需要给它一个 URL,无需提供网站地图(sitemap),它就能抓取该 URL 的当前网页或更深层的网页,并可以把抓到的数据转变成 markdown 格式,这种格式更适合 LLM 阅读,在当今的 AI 浪潮下可以说是非常适合了。
在这里插入图片描述

截至 2025 年 3 月,Firecrawl 支持以下功能:

  • Scrape:抓取 URL 当前页面的内容,可以以 markdown 格式返回。
  • Crawl:递归抓取 URL 的子域,并可以以 markdown 格式返回内容。
  • Map:可以非常快速的获取输入网站的所有 URL。
  • Extract:使用 LLMs 从页面中提取结构化数据。
前期准备

一、环境要求

  • 硬件要求:2 核、4GB 内存、50GB 硬盘。
  • 软件要求:Ubuntu 24.04(VMware 虚拟环境)、Docker、Git。

二、网络环境

  • 本地网络:部署时可以使用 VMware 的 NAT 模式,如果只是本机使用就已经无需调整了,如果是需要内网中为其他设备提供服务,那就需要配置成 bridge(桥接)模式了。
  • 外部网络:我们是把 Firecrawl 部署在 docker 中,所以构建时需要从网络上拉取镜像,国内虽然有镜像源,但是并没有外面的全,所以可能会导致超时导致构建失败,所以提前准备一个靠谱的代理(科学上网)是非常必要的。

三、Docker 的安装
关于 Docker 的安装在这里就不进行细说了,可以跟着这篇博客来操作:https://blog.csdn.net/awei0916/article/details/147522417

Firecrawl 的安装

一、检查系统的网络环境
在装好 Ubuntu 系统后最先开始检查的及时网络问题了,首先我们要把之前提到的代理打开,并调节到全局模式(拉取镜像的成败关键)。

同时即使开了代理有的还是会失败,这是由于运营商的问题,因为每个运营商对于不同 IP 访问的路由设置都不一样,目前在广东测试发现电信是最好使的。

之后就进入 Ubuntu 虚拟机进行 ping 测,命令如下:

ping www.baidu.com
ping www.qq.com

如果到最后实在是没办法了,可以拿我提前安装好的镜像直接导入到 docker 当中来使用,这样就可以避免网络问题了,链接在“备份与加载 Firecrawl 的镜像”的部分。

二、下载 Firecrawl 源码
Firecrawl 是一个开源软件,我们可以直接上 Github 上搜索并下载其源码,链接为:https://github.com/mendableai/firecrawl 可以直接下载 ZIP 压缩包然后通过 WinSCP 之类的软件传出到 Ubuntu 当中。

  1. 本次我们使用 git 命令来克隆代码

    • Ubuntu

      sudo apt-get install -y git
      
    • Windows
      直接打开该链接下载:https://git-scm.com/downloads。

      下载完成后双击安装,安装选项默认即可。

  2. 然后我们去 Github 上获取克隆链接,如下图所示。

    进入命令行输入以下命令(该命令会下载到当前所在目录下):

    # 例如,当前目录是 /root/ 他就会下载到这个目录下
    cd /root/
    git clone https://github.com/mendableai/firecrawl.git
    

三、Firecrawl 环境变量与配置文件的修改
下载完成源码后我们需要准备两个文件,分别是 .envdocker-compose.yaml

  1. .env:该文件就是该 Firecrawl 的环境变量,api key 之类的都是在该文件中设置,在 ./firecrawl/apps/api 目录下有一个 .env.example 的参考文件。

    使用下面的命令重命名为 .env

    cd ./firecrawl/apps/api/
    cp .env.example .env
    

    .env 文件中修改了以下配置:

    # .env
    
    # ===== Required ENVS ======
    NUM_WORKERS_PER_QUEUE=8 
    PORT=3002
    HOST=0.0.0.0
    
    #for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
    REDIS_URL=redis://redis:6379
    
    #for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
    REDIS_RATE_LIMIT_URL=redis://redis:6379 
    PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/html
    
    ## To turn on DB authentication, you need to set up supabase.
    USE_DB_AUTHENTICATION=false
    
    # ===== Optional ENVS ======
    
    # Supabase Setup (used to support DB authentication, advanced logging, etc.)
    SUPABASE_ANON_TOKEN= 
    SUPABASE_URL= 
    SUPABASE_SERVICE_TOKEN=
    
    # Other Optionals
    # use if you've set up authentication and want to test with a real API key
    # 这里是设置 api key 的,但是内网使用的话可以随意设置的
    TEST_API_KEY=fc-11111111
    # set if you'd like to test the scraping rate limit
    RATE_LIMIT_TEST_API_KEY_SCRAPE=
    # set if you'd like to test the crawling rate limit
    RATE_LIMIT_TEST_API_KEY_CRAWL=
    # set if you'd like to use scraping Be to handle JS blocking
    SCRAPING_BEE_API_KEY=
    # add for LLM dependednt features (image alt generation, etc.)
    OPENAI_API_KEY=
    BULL_AUTH_KEY=@
    # use if you're configuring basic logging with logtail
    LOGTAIL_KEY=
    # set if you have a llamaparse key you'd like to use to parse pdfs
    LLAMAPARSE_API_KEY=
    # set if you'd like to send slack server health status messages
    SLACK_WEBHOOK_URL=
    # set if you'd like to send posthog events like job logs
    POSTHOG_API_KEY=
    # set if you'd like to send posthog events like job logs
    POSTHOG_HOST=
    
    # set if you'd like to use the fire engine closed beta
    FIRE_ENGINE_BETA_URL=
    
    # Proxy Settings for Playwright (Alternative you can can use a proxy service like oxylabs, which rotates IPs for you on every request)
    PROXY_SERVER=
    PROXY_USERNAME=
    PROXY_PASSWORD=
    # set if you'd like to block media requests to save proxy bandwidth
    BLOCK_MEDIA=
    
    # Set this to the URL of your webhook when using the self-hosted version of FireCrawl
    SELF_HOSTED_WEBHOOK_URL=
    
    # Resend API Key for transactional emails
    RESEND_API_KEY=
    
    # LOGGING_LEVEL determines the verbosity of logs that the system will output.
    # Available levels are:
    # NONE - No logs will be output.
    # ERROR - For logging error messages that indicate a failure in a specific operation.
    # WARN - For logging potentially harmful situations that are not necessarily errors.
    # INFO - For logging informational messages that highlight the progress of the application.
    # DEBUG - For logging detailed information on the flow through the system, primarily used for debugging.
    # TRACE - For logging more detailed information than the DEBUG level.
    # Set LOGGING_LEVEL to one of the above options to control logging output.
    LOGGING_LEVEL=INFO
    
  2. docker-compose.yaml:该文件就是该 Firecrawl 的 docker 配置文件了,这里面定义了需要什么镜像和具体镜像的配置,Firecrawl 把该文件默认就放在根目录下(./firecrawl/)。

    同样的,如果没有什么特殊需求可以直接使用该文件当中的配置,如果在部署时发现与内网 IP 发生冲突或与本机的应用端口发生冲突就可以在该文件当中进行修改配置。

四、Firecrawl 构建
正式进入 Firecrawl 构建前我们可以通过国内的镜像源来下载一些依赖镜像,以提高构建的成功率。

  1. 镜像加速(如果在安装 Docker 的时候已经执行过了请忽略)

    # 新版的 Docker 使用 /etc/docker/daemon.json 来配置 Daemon
    # 请在该配置文件中加入(没有该文件的话,请先建一个)Docker 中国官方加速
    sudo vim /etc/docker/daemon.json
    

    以下为文件内容:

    {
      "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker.hlmirror.com",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
      ]
    }
    

    重启 docker 服务以应用镜像加速:

     sudo systemctl daemon-reload
     sudo systemctl restart docker
    
    • 镜像加速配置可参考:https://blog.csdn.net/awei0916/article/details/147522593
  2. 拉取依赖镜像

    docker pull python
    docker pull golang:1.24
    docker pull node:18-slim
    docker pull redis:alpine
    
  3. 构建 Firecrawl
    注意:构建命令的执行一定要在 docker-compose.yaml 文件所在目录下执行。

    # 例如,Firecrawl 在 /root/ 下
    cd /root/firecrawl/
    docker compose build
    

五、Firecrawl 运行
构建完成后使用以下命令启动 Firecrawl,注意还是要在 ./firecrawl/ 目录下:

docker compose up # 为了方便查看日志先不使用 -d 参数(后台运行)

启动完成后在浏览器输入以下 URL 来进行测试:

http://192.168.26.100:3002/test
Windows 中的 Docker

当前基于 WSL2 的加持下 Windows 下都能运行专为 Linux 开发的软件,例如 Docker。我们可以从 Docker 的官网下载 Docker Desktop 在 Windows 上使用 Docker。

安装完成后 Docker Desktop 会要求你安装 WSL2,你只需回车安装即可(千万不要自己使用微软提供的命令来安装,超级慢),同时在安装的过程中也会配置环境变量,这样你在 cmd 当中就可以使用 docker 命令了。

至此后面 Firecrawl 的安装步骤和命令都和 Ubuntu 当中的无异了。

关于 Docker 容器网络的修改

当需要把 Firecrawl 放开给内网的其他用户使用时,Firecrawl 的 Docker 容器是以 172.18.0.0/16 开始分配的,如果内网也是使用该地址的话,就会遇到 IP 冲突的问题,导致服务不可用了,这个时候就需要修改 docker-compose.yaml 的配置了。

修改网络的配置有几步:

  1. 对 docker 网络进行修改
  2. 对各个容器绑定的网络进行修改,换个说法就是让容器加入不同的网络。

Docker 网络的名称:Docker 网络的名称是由写在开头的 name 字段和写在结尾的具体网络名称结合起来决定的,像 Firecrawl 的就是 firecrawl-backend,为了方便区分,我给前半部分定义为 Docker 网络的姓,后半部分定义为 Docker 网络的名。

下面为具体的配置,标红的为修改网络时需要修改的地方:

name: firecrawl        # Docker 网络名称的姓

x-common-service: &common-service
  # NOTE: If you want to build the service locally,
  # uncomment the build: statement and comment out the image: statement
  # image: ghcr.io/mendableai/firecrawl
  build: apps/api

  ulimits:
    nofile:
      soft: 65535
      hard: 65535
  networks:
    - backend
  extra_hosts:
    - "host.docker.internal:host-gateway"

x-common-env: &common-env
  REDIS_URL: ${REDIS_URL:-redis://redis:6379}
  REDIS_RATE_LIMIT_URL: ${REDIS_URL:-redis://redis:6379}
  PLAYWRIGHT_MICROSERVICE_URL: ${PLAYWRIGHT_MICROSERVICE_URL:-http://playwright-service:3000/scrape}
  USE_DB_AUTHENTICATION: ${USE_DB_AUTHENTICATION}
  OPENAI_API_KEY: ${OPENAI_API_KEY}
  OPENAI_BASE_URL: ${OPENAI_BASE_URL}
  MODEL_NAME: ${MODEL_NAME}
  MODEL_EMBEDDING_NAME: ${MODEL_EMBEDDING_NAME} 
  OLLAMA_BASE_URL: ${OLLAMA_BASE_URL} 
  SLACK_WEBHOOK_URL: ${SLACK_WEBHOOK_URL}
  BULL_AUTH_KEY: ${BULL_AUTH_KEY}
  TEST_API_KEY: ${TEST_API_KEY}
  POSTHOG_API_KEY: ${POSTHOG_API_KEY}
  POSTHOG_HOST: ${POSTHOG_HOST}
  SUPABASE_ANON_TOKEN: ${SUPABASE_ANON_TOKEN}
  SUPABASE_URL: ${SUPABASE_URL}
  SUPABASE_SERVICE_TOKEN: ${SUPABASE_SERVICE_TOKEN}
  SCRAPING_BEE_API_KEY: ${SCRAPING_BEE_API_KEY}
  SELF_HOSTED_WEBHOOK_URL: ${SELF_HOSTED_WEBHOOK_URL}
  SERPER_API_KEY: ${SERPER_API_KEY}
  SEARCHAPI_API_KEY: ${SEARCHAPI_API_KEY}
  LOGGING_LEVEL: ${LOGGING_LEVEL}
  PROXY_SERVER: ${PROXY_SERVER}
  PROXY_USERNAME: ${PROXY_USERNAME}
  PROXY_PASSWORD: ${PROXY_PASSWORD}
  SEARXNG_ENDPOINT: ${SEARXNG_ENDPOINT}
  SEARXNG_ENGINES: ${SEARXNG_ENGINES}
  SEARXNG_CATEGORIES: ${SEARXNG_CATEGORIES}

services:
  playwright-service:
    build: apps/playwright-service-ts
    environment:
      PORT: 3000
      PROXY_SERVER: ${PROXY_SERVER}
      PROXY_USERNAME: ${PROXY_USERNAME}
      PROXY_PASSWORD: ${PROXY_PASSWORD}
      BLOCK_MEDIA: ${BLOCK_MEDIA}
    networks:
      - backend

  api:
    <<: *common-service
    environment:
      <<: *common-env
      HOST: "0.0.0.0"
      PORT: ${INTERNAL_PORT:-3002}
      FLY_PROCESS_GROUP: app
    depends_on:
      - redis
      - playwright-service
    ports:
      - "${PORT:-3002}:${INTERNAL_PORT:-3002}"
    command: [ "pnpm", "run", "start:production" ]

  worker:
    <<: *common-service
    environment:
      <<: *common-env
      FLY_PROCESS_GROUP: worker
    depends_on:
      - redis
      - playwright-service
      - api
    command: [ "pnpm", "run", "workers" ]

  redis:
    # NOTE: If you want to use Valkey (open source) instead of Redis (source available),
    # uncomment the Valkey statement and comment out the Redis statement.
    # Using Valkey with Firecrawl is untested and not guaranteed to work. Use with caution.
    image: redis:alpine
    # image: valkey/valkey:alpine

    networks:
      - backend
    command: redis-server --bind 0.0.0.0

networks:
  backend:        # Docker 网络名称的名
    driver: bridge
    ipam:
      config:
        - subnet: 169.254.20.0/24
          gateway: 169.254.20.1

修改完成后我们执行以下命令来刷新一下 Docker 中容器的网络配置:

cd /root/firecrawl/
docker compose down    # 一定要用 down,如果只用 stop 网络还是会存在的,而 down 会删除网络后重建,这就会重新读取配置文件了
docker compose up -d    # 启动完成后,后台执行

使用以下命令查看网络是否成功刷新:

docker network ls
NETWORK ID     NAME                DRIVER    SCOPE
60543a4ce104   bridge              bridge    local
97500e5d8d29   firecrawl_backend   bridge    local
b094cb4ca2cb   host                host      local
78eef628113c   none                null      local

docker network inspect 60543a4ce104
[
    {
        "Name": "bridge",
        "Id": "60543a4ce1049cef67a86c4a401d00772f258c2909bc65be28326f355d67f6a8",
        "Created": "2025-05-13T05:37:26.685071552-04:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

备份与加载 Firecrawl 的镜像

Docker 镜像的构建和拉去在国内的网络环境下是有一定难度的,这样无疑大大降低了容器的便捷性,而我们如果想要多在几台不同的机器上部署 Firecrawl 是不是每次都要重新构建呢?其实并不需要,我们只需要先在一台机器上进行搭建,然后备份相应的镜像,最后再拷贝到需要部署的机器上把镜像进行加载就可以快速的部署,备份和加载的过程如下。

一、备份 Firecrawl 的镜像

  1. Firecrawl 需要备份的镜像有:firecrawl-apifirecrawl-workerfirecrawl-playwright-serviceredis,我们可以使用以下命令来查看:
docker image ls
REPOSITORY                     TAG       IMAGE ID       CREATED        SIZE
firecrawl-worker               latest    1162031cf0fa   18 hours ago   870MB
firecrawl-api                  latest    01bb699700f6   18 hours ago   870MB
firecrawl-playwright-service   latest    519ef502e368   43 hours ago   2.5GB
python                         latest    e20207435136   5 days ago     1.02GB
golang                         1.24      f254902cf370   7 days ago     853MB
rust                           1-slim    597f2b7f9f59   8 days ago     847MB
redis                          alpine    67ae465a4123   9 days ago     60.5MB
node                           22-slim   ef55d7d36951   2 weeks ago    224MB
node                           18-slim   fc665eaf5031   6 weeks ago    192MB

  1. 使用下面的命令来进行备份:
    docker save -o /root/firecrawl_images/firecrawl-worker.tar firecrawl-worker
    docker save -o /root/firecrawl_images/firecrawl-api.tar firecrawl-api
    docker save -o /root/firecrawl_images/firecrawl-playwright-service.tar firecrawl-playwright-service
    docker save -o /root/firecrawl_images/redis.tar redis
    

二、加载 Firecrawl 的镜像
将备份的镜像拷贝到需要部署的机器之后使用以下命令进行镜像的载入:

# 假设镜像存储的路径为 /root/firecrawl_images/
docker load -i /root/firecrawl_images/firecrawl-worker.tar firecrawl-worker
docker load -i /root/firecrawl_images/firecrawl-api.tar firecrawl-api
docker load -i /root/firecrawl_images/firecrawl-playwright-service.tar firecrawl-playwright-service
docker load -i /root/firecrawl_images/redis.tar redis

加载完成后可以使用以下命令查看是否加载成功:

docker image ls

当然也是需要重新下载源码以及修改环境变量和配置文件的,请重复前面 Firecrawl 安装的第三步,在一切处理完成后就可以使用以下命令来启动了:

# 假设下载源代码的路径为 /root/firecrawl/
cd /root/firecrawl/
docker compose up -d
Dify 的调用
  1. 在部署好的 Dify(v1.0.0)当中安装 Firecrawl 插件
    在这里插入图片描述

  2. 单击插件配置页面进行授权配置
    在这里插入图片描述

  3. 点击保存成功授权
    在这里插入图片描述

  4. 测试
    测试网址:https://baijiahao.baidu.com/s?id=1831912111607933623
    在这里插入图片描述

流程如下:
在这里插入图片描述

测试结果如下:

在这里插入图片描述

注意

  • 确保 Firecrawl 和 Dify 服务均已正确启动。
  • 在 Dify 中配置 Firecrawl 插件时,需填写正确的 API URL 和 API Key(在 Firecrawl 的 .env 文件中设置的 TEST_API_KEY)。
  • 测试时可根据实际需求调整抓取深度、格式等参数。

通过以上步骤,您可以成功部署 Firecrawl 并实现与 Dify 的集成调用,确保数据抓取和 LLM 应用的无缝衔接。

<think>好的,用户遇到了Dify在使用Firecrawl同步知识库时爬行速度过慢的问题,特别是在Docker环境中。我需要根据提供的引用信息来思考解决方案。首先,用户提到引用了几个关于Docker配置的文档,比如启动命令、环境变量设置、Redis地址配置以及Docker Compose版本的问题。我需要结合这些信息来找出可能影响爬虫速度的因素。 首先,用户可能没有正确配置环境变量,尤其是Redis的地址。如果FirecrawlDify不在同一个Docker网络内,使用localhost可能无法正确连接,导致延迟。根据引用[2],如果使用Docker,需要调整Redis地址,比如使用Docker的内部网络IP或者服务名。这可能需要检查docker-compose.yaml中的网络配置,确保所有相关服务在同一个自定义网络中,这样可以通过服务名进行通信,减少网络延迟。 其次,Docker的资源配置可能不足。比如,CPU和内存限制可能导致Firecrawl运行缓慢。用户需要检查docker-compose.yaml中的资源限制部分,适当增加CPU和内存的分配。此外,调整ulimits参数,如打开文件数限制,可能会提升并发处理能力。引用[3]提到群晖DSM的Docker Compose版本较低,需要手动修改ulimits设置,这可能也适用于其他环境。需要确保ulimits设置足够高,避免因资源限制导致的性能瓶颈。 另外,Firecrawl本身的配置参数可能需要优化。比如并发请求数、请求间隔时间等。用户可能需要在环境变量中调整这些参数,比如增加并发数,减少延迟时间。同时,检查是否启用了缓存功能,合理设置缓存时间,避免重复抓取相同内容,节省时间和资源。 网络方面,如果Docker容器之间的通信存在延迟,可能需要优化网络配置,使用自定义网络,或者确保容器部署在同一主机上,减少网络开销。此外,检查是否配置了正确的DNS解析,避免DNS查询带来的延迟。 还有,更新DifyFirecrawl到最新版本可能包含性能改进。用户需要确保从正确的仓库克隆源码,如引用[4]提到的gitee仓库,并定期拉取更新。同时,检查日志文件,查看是否有错误或警告信息,帮助定位问题根源。 最后,如果问题依然存在,可能需要进一步分析,比如使用性能监控工具查看容器资源使用情况,或者联系Firecrawl的开发者社区寻求帮助。综合以上步骤,应该能够有效提升爬虫速度。</think>### 分步解决方案:优化Docker环境中Dify使用Firecrawl同步知识库的爬虫速度 #### 1. 检查Redis地址配置(关键优化) - **问题分析**:Firecrawl依赖Redis进行任务队列管理,若地址配置错误会导致通信延迟[^2] - **操作步骤**: 1. 修改`docker-compose.yaml`中Redis连接配置: ```yaml environment: REDIS_URL: "redis://redis:6379/0" # 使用Docker服务名替代localhost ``` 2. 确保Redis服务在Docker网络内可访问 3. 验证连接:进入Dify容器执行`redis-cli -h redis ping` #### 2. 调整Docker资源配置 - **问题分析**:容器默认资源限制可能成为性能瓶颈 - **优化方案**: ```yaml services: firecrawl: deploy: resources: limits: cpus: '2' # 分配2个CPU核心 memory: 2G # 分配2GB内存 ulimits: # 参考引用[3]调整文件限制 nofile: soft: 65535 hard: 65535 ``` #### 3. 优化Firecrawl配置参数 - **核心参数调整**: ```yaml environment: MAX_CONCURRENT_REQUESTS: "10" # 提升并发请求数 REQUEST_DELAY_MS: "500" # 适当降低请求间隔 CACHE_ENABLED: "true" # 启用缓存 CACHE_TTL: "86400" # 设置24小时缓存有效期 ``` #### 4. Docker网络优化 - **自定义网络配置**: ```yaml networks: dify-net: driver: bridge attachable: true ``` - 确保所有相关服务(Dify/Firecrawl/Redis)使用同一网络 #### 5. 版本升级与日志分析 - **执行步骤**: 1. 更新到最新版本(参考引用[4]): ```bash cd dify && git pull origin main docker-compose build --no-cache && docker-compose up -d ``` 2. 查看实时日志: ```bash docker logs -f firecrawl # 观察请求响应时间 docker stats # 监控资源利用率 ``` #### 6. 高级优化方案(可选) - 启用HTTP/2协议支持: ```yaml environment: HTTP2_ENABLED: "true" ``` - 配置DNS缓存: ```yaml dns: 8.8.8.8 dns_search: . ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值