📌 项目: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隐身浏览。
from crawl4ai import AsyncWebCrawler
async with AsyncWebCrawler() as crawler:
result = await crawler.arun("https://example.com")
# result.markdown 是清洗后的Markdown正文
# 自动去除导航栏、广告、脚本、样式
print(result.markdown[:500])
用CSS选择器或XPath提取特定字段,输出结构化JSON:
# 提取商品信息
schema = {
"name": "css:.product-title",
"price": "css:.price",
"rating": "xpath://span[@class='rating']"
}
result = await crawler.arun(url, extraction_strategy=schema)
支持批量URL爬取,内置并发控制和速率限制,避免被封IP。
| ✅ 优势 | ❌ 劣势 |
|---|---|
| 84k星,完全免费开源 | 需要自己维护基础设施 |
| 自动JS渲染+内容清洗 | 无代理网络(自建需额外配置) |
| Markdown输出LLM友好 | 反爬强站点覆盖度有限 |
| 结构化数据提取 | Python生态(无Node.js SDK) |
Crawl4AI是纯开源的本地爬虫(84k星),完全免费自部署。Firecrawl是商业产品有托管版(184k星),免费额度500页/月。Crawl4AI适合有技术能力的团队自部署,Firecrawl适合不想维护基础设施的团队。功能上都输出LLM-ready的Markdown。
支持。Crawl4AI内置Playwright浏览器引擎,可以渲染JS-heavy页面(SPA、动态加载内容)。支持等待选择器、执行JS脚本、截图等。渲染模式可选:无头浏览器(完整渲染)或HTTP请求(快速但无JS)。
默认输出清洗后的Markdown(去除导航/广告/脚本),也支持输出结构化JSON(用CSS选择器或XPath提取特定字段)、HTML片段、截图。Markdown输出专为LLM优化,token消耗低。