Crawl4AI教程:84k星LLM专用Web爬虫,自动清洗输出Markdown

📌 项目:unclecode/crawl4ai | 星数:84,288 | 语言:Python | 协议:Apache-2.0 | 更新:2026-09-26

📋 项目简介

一句话定位:"给LLM用的开源Web爬虫——自动渲染JS、清洗噪声、输出干净Markdown,84k星完全免费。" Crawl4AI解决了传统爬虫输出不适用LLM的问题:HTML源码充满噪声、JS渲染需要额外处理、内容清洗需要大量代码。Crawl4AI把这些全自动化了。

和 Invisible Playwright MCP 类似都涉及浏览器自动化,但Crawl4AI专注爬取+清洗输出,后者专注AI Agent隐身浏览。

🔧 核心功能

1. JS渲染+自动清洗

from crawl4ai import AsyncWebCrawler

async with AsyncWebCrawler() as crawler:
    result = await crawler.arun("https://example.com")
    # result.markdown 是清洗后的Markdown正文
    # 自动去除导航栏、广告、脚本、样式
    print(result.markdown[:500])

2. 结构化数据提取

用CSS选择器或XPath提取特定字段,输出结构化JSON:

# 提取商品信息
schema = {
    "name": "css:.product-title",
    "price": "css:.price",
    "rating": "xpath://span[@class='rating']"
}
result = await crawler.arun(url, extraction_strategy=schema)

3. 批量爬取+并发控制

支持批量URL爬取,内置并发控制和速率限制,避免被封IP。

⚖️ 优缺点

✅ 优势❌ 劣势
84k星,完全免费开源需要自己维护基础设施
自动JS渲染+内容清洗无代理网络(自建需额外配置)
Markdown输出LLM友好反爬强站点覆盖度有限
结构化数据提取Python生态(无Node.js SDK)

❓ 常见问题

Crawl4AI和Firecrawl有什么区别?

Crawl4AI是纯开源的本地爬虫(84k星),完全免费自部署。Firecrawl是商业产品有托管版(184k星),免费额度500页/月。Crawl4AI适合有技术能力的团队自部署,Firecrawl适合不想维护基础设施的团队。功能上都输出LLM-ready的Markdown。

Crawl4AI支持JS渲染吗?

支持。Crawl4AI内置Playwright浏览器引擎,可以渲染JS-heavy页面(SPA、动态加载内容)。支持等待选择器、执行JS脚本、截图等。渲染模式可选:无头浏览器(完整渲染)或HTTP请求(快速但无JS)。

Crawl4AI输出什么格式?

默认输出清洗后的Markdown(去除导航/广告/脚本),也支持输出结构化JSON(用CSS选择器或XPath提取特定字段)、HTML片段、截图。Markdown输出专为LLM优化,token消耗低。