unclecode/crawl4ai · 上手攻略

  • 仓库:unclecode/crawl4ai
  • 链接:https://github.com/unclecode/crawl4ai
  • 分类:数据采集 / RAG / AI 工程工具
  • 作者:Tom
  • 更新:2026-08-17

这是什么

Crawl4AI 是 GitHub Star 数最多的开源网页爬虫(75,960 ★,数据截至 2026-08-17),专为将网页转化为 LLM 可直接消费的 Markdown 而设计。相比传统爬虫输出 HTML 碎片,Crawl4AI 输出结构清晰、噪音少、带引用标注的 Markdown,特别适合 RAG pipeline、Agent 数据摄取和大规模数据采集。

核心特点: - LLM ready output:智能 Markdown,保留标题、表格、代码块、引用关系 - 自适应爬取:自动判断"何时停止",不盲目抓全站 - 零门槛:pip 安装,CLI 开箱即用,不需要 API Key - 安全加固:v0.8.0+ 后 Hooks 默认关闭,file:// URL 在 Docker API 层被屏蔽,反序列化 RCE 漏洞已修复

⚠️ GitHub README 标记最新版本为 v0.9.2,官方文档博客标记 v0.8.5(2026-03)为最新稳定版,两者可能存在发布节奏差异。


解决什么问题

传统爬虫方案面临三重困境: 1. 输出不友好:抓回来的是 HTML 碎片,需要额外清洗才能喂给 LLM 2. Bot 检测严:Cloudflare、Akamai 等动不动封 IP,全靠代理池硬抗 3. 成本高:第三方爬虫服务按请求计费,大规模采集费用惊人

Crawl4AI 用浏览器级别的爬取引擎 + LLM 友好的输出格式 + 完全本地化的方案一次性解决。


快速安装

pip 安装(推荐)

# 安装核心包
pip install -U crawl4ai

# 安装 pre-release 版本(最新特性)
pip install crawl4ai --pre

# 运行安装引导(下载 Playwright 浏览器等)
crawl4ai-setup

# 验证安装
crawl4ai-doctor

# 如遇浏览器问题,手动安装 Playwright Chromium:
python -m playwright install --with-deps chromium

Docker 安装(无需本地 Python 环境)

# 拉取最新镜像
docker pull unclecode/crawl4ai:latest

# 运行交互式爬虫
docker run -it unclecode/crawl4ai:latest crawl4ai

# 或者用 Docker 运行单次爬取
docker run --rm -v $(pwd):/data unclecode/crawl4ai:latest \
  crawl4ai https://example.com -o markdown

CLI 快速使用

# 基本爬取,输出 Markdown
crwl https://www.nbcnews.com/business -o markdown

# 深度爬取(广度优先,最多 10 页)
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

# 用 LLM 提取特定信息
crwl https://www.example.com/products -q "Extract all product prices"

核心用法

Python API:基本爬取

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)          # 干净 Markdown
        print(result.html)              # 原始 HTML
        print(result.links)             # 页面链接
        print(result.metadata)          # 元数据

asyncio.run(main())

Python API:LLM 驱动的结构化提取

import asyncio
from crawl4ai import AsyncWebCrawler

async def main():
    async with AsyncWebCrawler(verbose=True) as crawler:
        result = await crawler.arun(
            url="https://www.example.com/products",
            llm_extraction=True,  # 启用 LLM 提取
            extraction_prompt="Extract all product names, prices, and ratings",
            extraction_type="json"
        )
        print(result.extracted_content)  # 结构化 JSON

asyncio.run(main())

Python API:深度爬取 + 断点恢复

import asyncio
from crawl4ai import AsyncWebCrawler

async def main():
    async with AsyncWebCrawler() as crawler:
        # 深度爬取,自动探索相关链接
        result = await crawler.arun(
            url="https://docs.crawl4ai.com",
            deep_crawl=True,
            max_pages=50,
            # 断点恢复:从上次状态继续(crash-safe)
            resume_state=True,
            on_state_change=lambda state: print(f"Visited: {len(state.visited)} pages")
        )
        print(f"Total pages: {len(result.visited)}")
        print(result.markdown)

自定义 CSS/XPath 提取

async with AsyncWebCrawler() as crawler:
    result = await crawler.arun(
        url="https://news.ycombinator.com/",
        css_selector=".titleline",      # 提取特定元素
        bypass_cache=True,
        session_id="hacker-news-session"
    )

代理配置

async with AsyncWebCrawler(
    proxy="http://username:password@proxy.example.com:8080"
) as crawler:
    result = await crawler.arun(url="https://example.com")

典型适用场景

  1. RAG Pipeline 数据摄取:直接爬取网页 → Markdown → 向量数据库,省去 HTML 清洗步骤
  2. Agent 工具:LLM 需要实时查询网页信息,作为 tool_call 接入 Agent
  3. 大规模舆情监控:自适应爬取 + 并发控制,抓取数百个新闻源
  4. 学术数据采集:抓取 arXiv、PubMed 等论文页面,提取结构化信息
  5. 竞品分析:抓取多个电商/产品页面,提取价格、评价等结构化数据
  6. Deep Research:与 DeepResearch_AI 等工具配合,提供可信的网络信息来源

坑与注意

说明
v0.9.2 vs v0.8.5 版本混乱 ⚠️ GitHub README 标记 v0.9.2,官方文档博客标记 v0.8.5(2026-03)最新;以 GitHub Releases 为准
Playwright 浏览器依赖 首次运行需下载 Chromium,crawl4ai-setup 或手动 playwright install --with-deps
Docker 安全默认值 v0.9.0+ Docker API 默认开启认证,不绑定公网端口;生产环境部署务必检查安全配置
内存占用 深度爬取大量页面时内存消耗较大,注意 MemoryAdaptiveDispatcher 在 v0.9.2 前的 leak 问题(已修复)
反爬虫网站 虽然有 anti-bot 检测 + 代理支持,但强反爬网站(Cloudflare 高级版等)仍有概率失败
冷启动慢 首次爬取需要启动 Playwright 浏览器,约 3-5 秒,后续请求复用浏览器池
LLM 提取成本 开启 llm_extraction=True 会额外消耗 LLM token,页面多时费用需注意

与同类对比

项目 输出格式 LLM 友好度 API Key Bot 检测对抗 适用规模
Crawl4AI Markdown + HTML + JSON ⭐⭐⭐⭐⭐ 不需要 ⭐⭐⭐⭐ 中大型
Firecrawl Markdown ⭐⭐⭐⭐ 需要 ⭐⭐⭐⭐ 中型
ScrapeGraphAI Markdown ⭐⭐⭐⭐ 可选 ⭐⭐⭐ 中型
Playwright + 手动解析 HTML ⭐⭐ 不需要 ⭐⭐ 小型
第三方爬虫 API(Jina 等) Markdown ⭐⭐⭐⭐ 需要 ⭐⭐⭐⭐ 按需

Crawl4AI 的核心优势是完全本地化 + LLM 原生输出 + 零 API 成本,在 75k+ Stars 的社区验证下稳定性有保障,是目前开源爬虫领域的事实标准。


一句话推荐结论

需要将网页内容喂给 LLM(无论是 RAG、Agent 还是数据管道),Crawl4AI 是目前最省心、性能最强、零成本的方案;重度生产级部署建议用 Docker + 认证 + 代理池,并关注 GitHub Releases 的最新版本。