Crawl4AI 是一个开源、面向 LLM 的网页爬虫与抓取引擎
Crawl4AI 详细部署教程
项目概述
Crawl4AI 是一个开源、面向 LLM 的网页爬虫与抓取引擎,能将网页转换为干净的、适合 LLM 处理的 Markdown 格式,专为 RAG、AI Agent 和数据管道设计。
核心特性:
- LLM 友好输出:生成结构化 Markdown,保留标题、表格、代码等格式
- 异步高性能:基于 Playwright 的异步浏览器池,支持并发抓取
- 完整浏览器控制:支持会话管理、代理、Cookie、自定义脚本、钩子
- 灵活部署:支持 pip 安装、Docker 部署、CLI 工具
最新版本:v0.9.3(安全更新版本),修复了 PDF 处理路径的任意文件写入、SSRF 和 DoS 漏洞,以及 Docker Playground 的两个 XSS 问题。
部署前准备
系统要求
| 项目 | 要求 |
|---|---|
| Python | 3.10+ |
| 操作系统 | Windows / macOS / Linux |
| 内存 | 最低 2GB,推荐 4GB+(Docker 部署需增加 shm-size) |
| 磁盘空间 | 最低 2GB |
环境检查
1 | python --version |
方案一:pip 安装(推荐)
这是最简单的部署方式,适合大多数用户。
步骤 1:安装 Crawl4AI
1 | pip install -U crawl4ai |
步骤 2:运行安装后设置
1 | crawl4ai-setup |
此命令会自动安装并配置 Playwright 浏览器。
步骤 3:验证安装
1 | crawl4ai-doctor |
步骤 4:如果遇到浏览器问题
可以手动安装 Playwright:
1 | python -m playwright install --with-deps chromium |
步骤 5:快速测试
1 | import asyncio |
方案二:Docker 部署
Docker 部署适合隔离环境或生产部署,提供 API 服务器、监控仪表盘和 Playground。
步骤 1:拉取镜像
1 | docker pull unclecode/crawl4ai:latest |
步骤 2:运行容器
1 | docker run -d \ |
注意:
--shm-size参数用于设置共享内存,建议至少 1GB。复杂页面或大规模抓取建议设置 3-4GB。
步骤 3:访问服务
| 服务 | 地址 |
|---|---|
| 监控仪表盘 | http://localhost:11235/dashboard |
| Playground | http://localhost:11235/playground |
步骤 4:测试 API
1 | curl -X POST http://localhost:11235/crawl \ |
使用 LLM 支持(可选)
如果需要 LLM 提取功能,创建 .llm.env 文件:
1 | cat > .llm.env << EOL |
运行时挂载:
1 | docker run -d \ |
安全注意事项(重要)
Crawl4AI 的 Docker API 服务器在 v0.9.0 版本之前默认无认证,存在多个严重安全漏洞:
| 漏洞类型 | 影响 | 修复版本 |
|---|---|---|
| Chromium 启动参数注入 RCE | 未认证远程代码执行 | v0.9.0 |
| 流式抓取路径 SSRF | 读取内部服务和云元数据 | v0.9.0 |
| PDF 处理路径漏洞 | 任意文件写入、SSRF、DoS | v0.9.3 |
| Docker Playground XSS | 可能泄露操作员 API Token | v0.9.3 |
安全部署建议
务必升级到 v0.9.3 或更高版本:
1
pip install -U crawl4ai
启用认证(v0.9.0+ 默认启用):
1
2
3
4
5
6docker run -d \
-p 11235:11235 \
-e CRAWL4AI_API_TOKEN=your_secure_token \
--name crawl4ai \
--shm-size=1g \
unclecode/crawl4ai:latest不要将 API 暴露到公网:默认绑定 loopback,如需外部访问请使用反向代理并配置认证
注意 v0.9.0 的破坏性变更:
extra_args、proxy、user_data_dir等字段现在被禁止从不可信请求中设置,会返回 HTTP 400
常用 CLI 命令
1 | # 基础抓取,输出 Markdown |
常见问题排查
| 问题 | 解决方案 |
|---|---|
| Playwright 安装失败 | 运行 python -m playwright install chromium |
| Docker 内存不足 | 增加 --shm-size 参数(建议 3-4GB) |
| 内存泄漏(Docker 环境) | 已知问题,升级到最新版本;使用 MemoryAdaptiveDispatcher 控制并发 |
| API 返回 401 | v0.9.0+ 默认启用认证,检查 CRAWL4AI_API_TOKEN |
| PDF 处理报错 | 升级到 v0.9.3,PDF 下载已限制为 100MiB 和 2000 页 |
版本选择建议
| 版本 | 特点 | 推荐度 |
|---|---|---|
| v0.9.3 | 最新稳定版,安全修复 | ⭐⭐⭐⭐⭐ |
| v0.9.0+ | 安全默认,认证启用 | ⭐⭐⭐⭐ |
| 早期版本 | 存在已知安全漏洞 | 不推荐 |
总结
| 部署方式 | 适用场景 | 难度 | 推荐度 |
|---|---|---|---|
| pip 安装 | 大多数用户 | ⭐ | ⭐⭐⭐⭐⭐ |
| Docker 部署 | 隔离环境/API 服务 | ⭐⭐ | ⭐⭐⭐⭐ |
对于大多数用户,pip 安装是最简单直接的选择:
1 | # 安装 |
如果使用 Docker 部署,务必升级到 v0.9.3 并配置 CRAWL4AI_API_TOKEN 认证,不要将未认证的 API 暴露到公网。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论




