Crawl4AI Docker部署:FastAPI服务器与Playground界面

Crawl4AI Docker部署:FastAPI服务器与Playground界面

【免费下载链接】crawl4ai 🔥🕷️ Crawl4AI: Open-source LLM Friendly Web Crawler & Scrapper 【免费下载链接】crawl4ai 项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai

快速开始:3分钟部署指南

你是否还在为网页爬取工具的复杂配置而烦恼?是否需要一个开箱即用的网页内容提取解决方案?本文将带你通过Docker快速部署Crawl4AI的FastAPI服务器与交互式Playground界面,无需复杂环境配置,3分钟即可拥有强大的网页爬取能力。

读完本文后,你将能够:

  • 使用Docker一键部署Crawl4AI服务
  • 通过直观的Playground界面配置爬取任务
  • 掌握基础与高级API调用方法
  • 了解MCP协议集成与扩展能力

环境准备

部署前请确保你的系统已安装:

  • Docker 20.10.0+(包含docker compose
  • Git(用于克隆仓库)
  • 至少4GB可用内存

验证Docker安装:运行docker info命令检查Docker是否正常运行

三种部署方式任选

方式一:使用Docker镜像仓库预构建镜像(推荐)

这是最简单快捷的部署方式,直接拉取官方预构建镜像:

# 拉取最新发布候选版本(包含最新特性)
docker pull unclecode/crawl4ai:0.7.0-r1

# 或者拉取稳定版本(0.6.0)
docker pull unclecode/crawl4ai:latest
启动容器

基本启动(无LLM支持):

docker run -d \
  -p 11235:11235 \
  --name crawl4ai \
  --shm-size=1g \
  unclecode/crawl4ai:0.7.0-r1

带LLM支持启动:

  1. 首先创建.llm.env文件:
cat > .llm.env << EOL
# OpenAI
OPENAI_API_KEY=sk-your-key

# Anthropic
ANTHROPIC_API_KEY=your-anthropic-key
EOL
  1. 启动容器并挂载环境变量文件:
docker run -d \
  -p 11235:11235 \
  --name crawl4ai \
  --env-file .llm.env \
  --shm-size=1g \
  unclecode/crawl4ai:0.7.0-r1

服务启动后,访问 http://localhost:11235 即可使用

方式二:使用Docker Compose

适合开发环境或需要自定义配置的场景:

  1. 克隆仓库:
git clone https://example.com/GitHub_Trending/craw/crawl4ai
cd crawl4ai
  1. 配置环境变量:
cp deploy/docker/.llm.env.example .llm.env
# 编辑.llm.env添加你的API密钥
  1. 启动服务:
# 使用Docker镜像仓库镜像
IMAGE=unclecode/crawl4ai:0.7.0-r1 docker compose up -d

# 或本地构建并启动
docker compose up --build -d

方式三:手动本地构建

适合需要深度定制的高级用户:

# 克隆仓库
git clone https://example.com/GitHub_Trending/craw/crawl4ai
cd crawl4ai

# 构建镜像
docker buildx build -t crawl4ai-local:latest --load .

# 启动容器
docker run -d \
  -p 11235:11235 \
  --name crawl4ai-standalone \
  --shm-size=1g \
  crawl4ai-local:latest

认识Playground界面

服务启动后,访问 http://localhost:11235/playground 即可打开交互式操作界面。Playground界面位于deploy/docker/static/playground/index.html,提供以下核心功能:

  1. 直观的配置面板:可通过表单设置所有爬取参数,无需手动编写JSON
  2. 实时预览:即时查看爬取配置对应的JSON结构
  3. 一键测试:直接在界面中发起爬取请求并查看结果
  4. 代码生成:自动生成Python、JavaScript等语言的API调用代码

Playground使用流程

  1. 在URL输入框中填写目标网址(如https://httpbin.org/html
  2. 配置浏览器参数(无头模式、视口大小等)
  3. 设置爬取参数(缓存模式、提取策略等)
  4. 点击"Run Crawl"按钮执行爬取
  5. 在结果面板查看爬取结果(HTML、Markdown或提取的结构化数据)

API调用详解

基础API请求

Crawl4AI提供RESTful API接口,支持多种爬取需求:

简单爬取请求
import requests

# 配置参数
browser_config = {
    "type": "BrowserConfig",
    "params": {"headless": True}
}

crawler_config = {
    "type": "CrawlerRunConfig",
    "params": {"stream": False, "cache_mode": "bypass"}
}

payload = {
    "urls": ["https://httpbin.org/html"],
    "browser_config": browser_config,
    "crawler_config": crawler_config
}

# 发送请求
response = requests.post(
    "http://localhost:11235/crawl",
    json=payload
)

# 处理响应
if response.ok:
    print(response.json())
else:
    print(f"Error: {response.text}")
流式爬取请求

对于需要处理多个URL或大型页面的场景,流式API可以逐步返回结果:

import json
import httpx
import asyncio

async def stream_crawl():
    url = "http://localhost:11235/crawl/stream"
    payload = {
        "urls": [
            "https://httpbin.org/html",
            "https://httpbin.org/links/5/0"
        ],
        "browser_config": {
            "type": "BrowserConfig",
            "params": {"headless": True}
        },
        "crawler_config": {
            "type": "CrawlerRunConfig",
            "params": {"stream": True, "cache_mode": "bypass"}
        }
    }

    async with httpx.AsyncClient() as client:
        async with client.stream("POST", url, json=payload) as response:
            async for line in response.aiter_lines():
                if line:
                    try:
                        data = json.loads(line)
                        if data.get("status") == "completed":
                            print("Stream completed.")
                            break
                        print(f"Received data from {data.get('url')}")
                    except json.JSONDecodeError:
                        print(f"Could not decode: {line}")

asyncio.run(stream_crawl())

高级API功能

截图功能
{
  "url": "https://example.com",
  "screenshot_wait_for": 2,
  "output_path": "/path/to/screenshot.png"
}

请求端点:POST /screenshot

PDF导出
{
  "url": "https://example.com",
  "output_path": "/path/to/document.pdf"
}

请求端点:POST /pdf

JavaScript执行
{
  "url": "https://example.com",
  "scripts": [
    "return document.title",
    "return Array.from(document.querySelectorAll('a')).map(a => a.href)"
  ]
}

请求端点:POST /execute_js

MCP协议集成

Crawl4AI支持Model Context Protocol (MCP),可直接与AI模型集成,提供更强大的上下文感知能力。

MCP连接方式

Crawl4AI提供两种MCP连接端点:

  • Server-Sent Events (SSE):http://localhost:11235/mcp/sse
  • WebSocket:ws://localhost:11235/mcp/ws

与Claude Code集成

# 添加Crawl4AI作为MCP提供者
claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse

# 验证连接
claude mcp list

通过MCP,AI模型可直接使用Crawl4AI的所有功能,包括:

  • md - 从网页内容生成Markdown
  • html - 提取预处理的HTML
  • screenshot - 网页截图
  • pdf - 生成PDF文档
  • execute_js - 执行JavaScript代码
  • crawl - 多URL爬取

服务器配置与优化

Crawl4AI服务器配置文件位于deploy/docker/config.yml,可通过以下方式自定义:

配置文件主要选项

# 应用配置
app:
  title: "Crawl4AI API"
  port: 8020  # 内部端口,外部通过Docker映射

# LLM默认配置
llm:
  provider: "openai/gpt-4o-mini"  # 默认LLM提供者
  api_key_env: "OPENAI_API_KEY"    # 环境变量名称

# 爬虫配置
crawler:
  memory_threshold_percent: 95.0  # 内存阈值百分比
  rate_limiter:
    base_delay: [1.0, 2.0]  # 请求间延迟范围(秒)

# 安全配置
security:
  enabled: false  # 安全功能总开关
  jwt_enabled: false  # JWT认证开关

自定义配置方法

推荐使用Docker挂载方式覆盖默认配置:

docker run -d \
  -p 11235:11235 \
  --name crawl4ai \
  -v ./my-config.yml:/app/config.yml \
  --shm-size=1g \
  unclecode/crawl4ai:0.7.0-r1

监控与维护

健康检查

curl http://localhost:11235/health

健康检查返回状态为ok表示服务正常运行。

性能指标

访问 http://localhost:11235/metrics 获取详细的Prometheus指标,包括:

  • 请求成功率
  • 平均响应时间
  • 内存使用情况
  • 爬虫队列长度

停止与更新服务

# 停止服务
docker stop crawl4ai && docker rm crawl4ai

# 更新镜像并重启(保持数据)
docker pull unclecode/crawl4ai:0.7.0-r1
docker run -d \
  -p 11235:11235 \
  --name crawl4ai \
  --env-file .llm.env \
  --shm-size=1g \
  unclecode/crawl4ai:0.7.0-r1

总结与进阶

通过本文介绍的方法,你已经成功部署了Crawl4AI的Docker服务并了解了基本使用方法。以下是一些进阶方向:

  1. 深入学习提取策略:探索docs/examples/extraction_strategies_examples.py中的高级提取技巧
  2. 定制爬虫行为:通过deep_crawling/模块实现复杂爬取逻辑
  3. 扩展API功能:修改deploy/docker/server.py添加自定义端点
  4. 集成到工作流:使用script/目录中的脚本模板自动化爬取任务

Crawl4AI持续更新中,关注项目ROADMAP.md了解即将发布的新功能。如有问题或建议,欢迎通过项目CONTRIBUTORS.md中的方式参与贡献。

提示:定期访问docs/目录获取最新文档和示例

【免费下载链接】crawl4ai 🔥🕷️ Crawl4AI: Open-source LLM Friendly Web Crawler & Scrapper 【免费下载链接】crawl4ai 项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值