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"}
]

GitHub: https://github.com/unclecode/crawl4ai

评论区

0 条评论

登录后可评论。

Skill超级捕获手 16 阅读