Crawl4AI:把任意网页一键转成 LLM-ready Markdown 的开源爬虫
Crawl4AI 把任意网页一键转成 LLM-ready Markdown 的开源爬虫,解决的是 AI 时代最实际的痛点:想把网页喂给大模型,却发现 HTML 里全是导航栏、广告、脚本噪音,清洗成本比抓取本身还高。它用异步浏览器池直出干净 Markdown,无需 API Key、不用注册账号,完全开源。截至 2026-08-30,GitHub 斩获 62K+ stars、6,300+ forks,PyPI 周下载量 384K 次,是目前 GitHub 上星数最高的爬虫项目。
核心能力与设计原则
Crawl4AI 定位为”Web → LLM-ready Markdown”的基础设施,底层基于 Playwright 异步浏览器池,支持 Chromium、Firefox、WebKit 三种内核。内容提取有两种 Markdown 输出模式:标准 Markdown 完整保留页面结构;Fit Markdown 则用启发式算法过滤导航栏、广告、页脚等噪音,只留正文核心。结构化数据提取是另一大亮点:既支持 CSS 选择器和 XPath,也支持用 LLM 按自定义 JSON Schema 做语义抽取——对于不规则页面比写选择器靠谱得多。
认可度
- GitHub:62,249+ stars、6,353+ forks(数据截至 2026-08-30)
- PyPI:384,000+ 周下载量
- License:Apache-2.0,企业可自由嵌入
- 维护状态:v0.9.2(2026 年持续活跃更新)
- 社区:50,000+ 成员,Discord 活跃,GitHub Trending 常驻
链接
GitHub:https://github.com/unclecode/crawl4ai
原作者
unclecode(GitHub username),NLP 方向背景,2023 年因不满当时”所谓开源”爬虫的付费墙,一怒之下几天肝出了 Crawl4AI 初版并直接开源。核心开发者主导维护,社区贡献者超过 6,300 人。
介绍
Crawl4AI 做的事情用一句话概括:把任意网页渲染、清洗、结构化为大模型直接可读的 Markdown/JSON。与传统爬虫的根本区别在于输出格式——它输出的 Markdown 天然保留了标题层级、表格、代码块、引用关系,LLM 处理时无需额外清洗。
底层基于 Playwright 的异步浏览器池,支持 JavaScript 渲染、Shadow DOM 扁平化、反 Bot 检测自动绕过。它还提供”自适应爬取”能力:AdaptiveCrawler 会自动学习目标网站的模式,判断何时该停、该跟哪个链接,不需要人工写死深度限制。
深度爬取方面,支持 BFS/DFS/BestFirst 三种策略,v0.8.0 加入了崩溃恢复机制(resume_state),长时任务中断后可从断点继续而不必从头来过。prefetch 模式可将 URL 发现速度提升 5-10 倍。此外还有”Fit Markdown”模式,用 BM25 算法按用户查询意图聚焦核心内容块,做 RAG 时非常实用。
特点
- LLM 就绪输出:智能生成带标题、表格、代码、引用编号的干净 Markdown,Fit Markdown 过滤噪音
- 异步浏览器池:基于 Playwright,支持 Chromium/Firefox/WebKit 三内核,高并发低延迟
- 自适应智能:自动学习网站结构,决定何时停止爬取,避免抓偏
- 全平台零门槛:pip 安装,无需 API Key、无需注册,云端本地皆可
- 结构化抽取:CSS/XPath 快速抽取 + LLM 语义抽取双模式,支持自定义 JSON Schema
- 深度爬取 + 崩溃恢复:BFS/DFS 策略、prefetch 加速、断点续爬
使用方法
安装:
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor
Python 基本调用:
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://www.nbcnews.com/business")
print(result.markdown)
asyncio.run(main())
CLI 快速爬取:
crwl https://example.com
Docker 一键部署(含监控 Dashboard、浏览器池、MCP 集成):
docker run -p 8000:8000 unclecode/crawl4ai
使用场景与人群
- RAG / 知识库构建:需要干净的网页文本灌入向量数据库,直接出 Markdown 无需后处理
- AI Agent 网页操作:让 Agent 自主抓取页面内容、提取结构化信息
- 数据管道 ETL:批量抓取网页并输出结构化数据,支持 LLM 语义抽取不规则内容
- 竞品调研 / 舆情监控:反 Bot 绕过能力强,支持代理链、Session 复用、登录态保持
- 目标用户:AI 应用开发者、数据工程师、RAG 系统构建者、需要网页数据喂给 LLM 的任何场景
输入与输出案例
输入(URL):
https://www.nbcnews.com/business
输出(Markdown 片段):
## Top Business Stories
Amazon reported quarterly earnings that exceeded analyst expectations...
| Company | Revenue | YoY Growth |
|---------|---------|------------|
| Amazon | $143.8B | +12% |
| Apple | $94.9B | +8% |
The Federal Reserve announced...
输入(带 LLM 抽取的 JSON Schema):
result = await crawler.arun(
url="https://news.ycombinator.com/",
extraction_strategy=LLMExtractionStrategy(
instruction="Extract post title, points, and author for each item",
schema=PostSchema
)
)
print(result.extracted_content)
输出(结构化 JSON):
[
{"title": "Show HN: I built a self-hosted AI coding assistant", "points": 847, "author": "asker"},
{"title": "A new approach to LLM memory", "points": 623, "author": "deep_thoughts"}
]
评论区
登录后可评论。