Crawl4AI:专为 LLM 打造的开源爬虫神器
一句话简介:Crawl4AI 是一款开源的 LLM 友好型网页爬虫与数据提取框架,将网页自动转化为干净的 Markdown 格式,让 AI Agent 和 RAG 系统轻松获取高质量的互联网数据。
工具概览
| 属性 | 信息 |
|---|---|
| 仓库地址 | unclecode/crawl4ai |
| 创建者 | unclecode |
| GitHub 星标 | ⭐ 80,376 |
| Fork 数 | 8,318 |
| 更新时间 | 2026-08-31 |
| 许可证 | Apache 2.0 |
| 支持语言 | Python |
| 官网 | crawl4ai.com |
| 文档 | docs.crawl4ai.com |
| 最新版本 | v0.9.2 |
核心功能
1. LLM 友好的 Markdown 输出
Crawl4AI 最核心的卖点是「智能 Markdown 生成」。它不只是简单地把 HTML 转成文本,而是通过多种策略对内容进行清洗和结构化:
- Clean Markdown:生成结构清晰、格式规范的 Markdown,保留标题层级、表格、代码块等关键元素
- Fit Markdown:基于启发式算法自动过滤噪声内容,只保留对 AI 最有价值的核心信息
- BM25 内容过滤:结合 BM25 算法,根据用户查询智能筛选最相关的内容段落
- 引用与参考:自动将页面链接转为带编号的参考文献列表,方便后续溯源
2. 强大的结构化数据提取
Crawl4AI 提供了两种 Extraction 策略:
- CSS/XPath 提取:定义 JSON Schema 后用 CSS 选择器快速提取结构化数据,无需调用 LLM,速度快、成本低
- LLM 驱动提取:支持 OpenAI、Ollama 等任何 Litellm 兼容的模型,自动从网页内容中提取符合指定 Schema 的结构化数据,还支持余弦相似度语义搜索
3. 浏览器级渲染与反爬能力
- Playwright 内核:完整执行 JavaScript,渲染动态内容,支持等待异步加载
- Shadow DOM 扁平化:自动提取隐藏在 Shadow DOM 中的内容
- 反检测机制:3 层反爬检测(已知厂商、通用拦截信号、结构完整性检查),自动切换代理重试
- 持久化浏览器 Profile:保存登录状态、Cookie,实现多步骤会话式爬取
- 懒加载处理:自动等待图片等媒体资源加载完成
4. 灵活的部署方式
- Python SDK:
pip install crawl4ai即可使用,async/await 原生支持 - CLI 命令行:
crwl https://example.com -o markdown一行命令搞定 - Docker 容器:官方镜像一键部署,内置 FastAPI 服务、实时监控面板和 Playground
- MCP 集成:可直接连接 Claude Code 等 AI 工具
5. 深度爬取与智能调度
- 支持 BFS、DFS、Best-First 三种深度爬取策略
- 崩溃恢复机制:通过
on_state_change回调持久化状态,支持断点续爬 - Prefetch 模式:跳过处理和渲染,仅做 URL 发现,速度提升 5-10 倍
适用人群
- AI 开发者:需要为 RAG 系统、Agent 准备高质量训练数据或上下文
- 数据科学家:需要从网页批量采集结构化数据用于分析和建模
- 开发者工具链建设者:需要稳定的网页数据管道接入 AI 工作流
- 独立开发者:希望零成本获取开源、可自托管的爬虫解决方案
与同类工具对比
| 特性 | Crawl4AI | Scrapy | Playwright (原生) | Firecrawl |
|---|---|---|---|---|
| LLM 友好输出 | ✅ 原生支持 | ❌ 需自行处理 | ❌ 需自行处理 | ✅ API 支持 |
| 结构化提取 | ✅ CSS + LLM 双模式 | ⚠️ 中间件扩展 | ❌ | ✅ API 支持 |
| 反爬能力 | ✅ 内置 3 层检测 | ⚠️ 需自行配置 | ⚠️ 需自行配置 | ✅ 托管服务 |
| 自托管成本 | ✅ 完全免费 | ✅ 完全免费 | ✅ 完全免费 | ❌ 按量付费 |
| 上手难度 | 🟢 低 | 🔴 高 | 🟡 中 | 🟢 低 |
| 并发性能 | 🟡 中 | 🟢 高 | 🟡 中 | 🟢 高(托管) |
Crawl4AI 的核心差异化在于「从爬虫到 LLM 数据的端到端打通」——它不只是抓页面,而是直接输出 AI 可理解的格式。相比 Scrapy,它更轻量且开箱即用;相比 Firecrawl 等商业服务,它完全免费可自托管,没有数据主权风险。
如何使用
快速安装
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor
如果浏览器安装有问题,可手动安装:
python -m playwright install --with-deps chromium
Python 示例:基础爬虫
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url="https://docs.crawl4ai.com",
)
print(result.markdown)
if __name__ == "__main__":
asyncio.run(main())
Python 示例:LLM 结构化提取
import asyncio, os
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
from crawl4ai import LLMExtractionStrategy
from pydantic import BaseModel
class Product(BaseModel):
name: str
price: str
description: str
async def main():
config = CrawlerRunConfig(
extraction_strategy=LLMExtractionStrategy(
llm_config={"provider": "openai/gpt-4o", "api_token": os.getenv("OPENAI_API_KEY")},
schema=Product.model_json_schema(),
instruction="从页面中提取所有商品信息",
)
)
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://example.com/products", config=config)
print(result.extracted_content)
asyncio.run(main())
CLI 示例
# 基本爬取
crwl https://example.com -o markdown
# 深度爬取
crwl https://docs.example.com --deep-crawl bfs --max-pages 20
# LLM 提取
crwl https://example.com -q "提取所有产品定价信息"
Docker 部署
docker pull unclecode/crawl4ai:latest
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest
# 访问 http://localhost:11235/dashboard 查看监控面板
总结
Crawl4AI 是目前 GitHub 上最受欢迎的开源爬虫项目(80K+ 星标),它的核心理念非常清晰:让网页数据直接变成 LLM 可用的格式。无论你是构建 RAG 系统、训练 AI Agent,还是批量采集数据,Crawl4AI 都能提供从浏览渲染到结构化提取的一站式解决方案。
推荐指数:⭐⭐⭐⭐⭐(5/5)
- 完全免费开源,Apache 2.0 许可
- 社区活跃,迭代迅速,v0.9.x 持续修复 bug
- 文档完善,上手门槛低
- 自托管无数据泄露风险
如果你正在寻找一款能够替代商业爬虫 API 的开源方案,Crawl4AI 是不二之选。