lang: zh slug: crawl4ai-tutorial-llm-ready-web-scraping-2026 title: ‘Crawl4AI 教程 2026’ description: ‘Crawl4AI 是 2026 年排名第一的 GitHub 存储库,拥有超过 63,000 颗星。 了解如何使用这个开源 Python 爬虫构建 LLM 友好的网络抓取工具、RAG 数据管道和 AI 代理工具。 包括安装指南、LLM 提取策略、深度抓取配置以及与 Firecrawl 和 ScrapeGraphAI 的比较。’ tags: [“knowledge-base”, “llm”, “open-source”, “rag”, “retrieval”, “self-hosted”] date: 2026-05-19 00:00:00+08:00 lastmod: 2026-05-19 00:00:00+08:00 tech_stack: [] application_domain: Llm Frameworks source_version: ’' licensing_model: Open Source license_type: Apache-2.0 file_size: ’' file_md5: ’' download_url: ’' backup_url: ’' github_repo: ‘https://github.com/unclecode/crawl4ai' last_maintained: ‘2026-05-20’ draft: false categories: [’llm-frameworks’] featureImage: /images/articles/1m-上下文窗口法学硕士-2026.jpg aliases:- /posts/crawl4ai-tutorial-llm-ready-web-scraping-2026/ 常见问题解答:

  • 问:“Crawl4AI 有何用途?” a:“Crawl4AI 是一个开源异步 Python 网络爬行框架,由 Playwright 提供支持,可将任何网站转换为干净、适合 LLM 的 Markdown。 它是为 RAG 管道、人工智能代理和训练数据集而构建的,在输出之前去除导航栏、广告、cookie 横幅和脚本标签。
  • q: ‘如何安装 Crawl4AI?’ a: ‘使用 pip installcrawl4ai 安装它,然后使用 playwright install chromium。 对于基于 Selenium 的同步变体,请使用“pip installcrawl4ai[sync]”,或者对于生产环境,使用“docker pull Unclecode/crawl4ai:latest”拉取 Docker 映像。
  • q: ‘Crawl4AI 是否支持基于 LLM 的数据提取而不使用 CSS 选择器?’ ‘是的。 您定义一个 Pydantic 模式加上一条简单的英语指令,Crawl4AI 的 LLMExtractionStrategy 可以让 LLM 自动提取字段。 它支持 OpenAI (gpt-4o)、Anthropic Claude、Groq/DeepSeek 和本地 Ollama 模型。
  • 问:“Crawl4AI 是免费的吗?它与 Firecrawl 相比如何?” a:“Crawl4AI 是完全开源的 (Apache-2.0),可以免费自行托管,无需按请求付费,只需支付基础设施费用。 Firecrawl 是一种托管 SaaS API,起价为 16 美元/月,配有官方 MCP 服务器; 许多制作团队使用 Firecrawl 来执行快速 API 任务,使用 Crawl4AI 来执行大容量自托管管道。
  • 问:“Crawl4AI 在提取数据时如何降低 LLM 代币成本?” a: 设置 input_format="markdown" 将干净的 Markdown 提供给 LLM,而不是原始 HTML,这通常会减少 60-80% 的令牌使用量。 其 BM25 内容过滤器进一步根据查询对文本块进行排名,并在嵌入或矢量存储之前删除低相关性内容。 特征图片:/images/articles/crawl4ai-tutorial-d291d2.jpg——{</* 资源信息 */>}## 简介:为什么 Crawl4AI 成为 2026 年最热门的开源工具当“unclecode/crawl4ai”在 GitHub 上获得了 63,000 颗星并在 2026 年初占据了第一名的时候,这并不是炒作。 这是时机。 人工智能生态系统已经达到了一个拐点,法学硕士、RAG 管道和自主代理需要大规模的干净、结构化的网络数据,而传统的抓取工具仍在吐出 HTML 汤。Crawl4AI 用一个极其简单的承诺填补了这一空白:**将任何网站变成干净的、适合法学硕士的 Markdown。 自托管。 零 API 费用。 完全开源。**这不是表面的概述。 这是一个面向生产的教程,涵盖:- 在 5 分钟内安装并运行您的第一次爬网
  • 使用法学硕士(GPT-4o、Claude、DeepSeek、Ollama)进行零规则结构化数据提取
  • 深度爬行、自适应爬行和BM25内容过滤
  • Crawl4AI 如何与 Firecrawl、ScrapeGraphAI 和 Scrapy 竞争
  • 高吞吐量管道的 Docker 部署和生产调整如果您要在 2026 年构建 RAG 系统、AI 代理或训练数据集,本指南就是为您编写的。—## Crawl4AI 是什么? LLM时代的数据基础设施### 核心设计理念Crawl4AI 是一个由 Playwright 支持的异步 Python 网络爬行框架。 与 Scrapy(擅长原始、大规模提取)或 BeautifulSoup(为您提供 DOM 并将清理工作留给您)不同,Crawl4AI 的默认输出是针对 LLM 消耗优化的 Markdown。这意味着导航栏、cookie 横幅、广告和脚本标签在您看到数据之前就被删除了。 结果呢? RAG 管道中的令牌成本更低、嵌入更清晰、检索质量更高。### 主要功能一览| Feature | What It Does | |———|————-| | LLM-Ready Markdown | Auto-cleans HTML noise; outputs structured Markdown perfect for LLM ingestion | | Async Concurrency | AsyncWebCrawler handles multiple URLs in parallel for high-throughput jobs | | JavaScript Rendering | Playwright engine handles React, Vue, and infinite-scroll SPAs natively | | LLM-Based Extraction | Define a Pydantic schema + natural language instruction; the LLM extracts fields automatically | | Deep Crawling | BFS/DFS strategies for site-wide recursive crawling | | Adaptive Crawling | New in v0.8 — uses information-foraging algorithms to know when enough data has been collected | | MCP Integration | Can be registered as a Model Context Protocol tool for Claude, Cursor, and other AI agents | | Anti-Bot Stealth | Stealth mode + proxy support to reduce detection risk |### 谁应该使用它?- RAG 工程师:通过最少的预处理将文档站点、博客和 wiki 馈送到矢量数据库中
  • 人工智能代理开发人员:让您的代理能够通过本地可控工具“阅读网络”
  • 数据团队:用自然语言提取命令替换脆弱的 XPath/CSS 选择器
  • 注重隐私的组织:将所有数据保存在本地; 不依赖第三方 SaaS—## 快速入门:5 分钟内安装、爬取并输出 Markdown### 安装选项 A — pip(推荐用于开发)bas h pip 安装crawl4ai 剧作家安装 chromium对于同步变体(基于 Selenium):bas h pip 安装crawl4ai[同步]选项 B — bas h pip 安装crawl4ai[同步]延迟环境)bas h docker pull Unclecode/crawl4ai:最新### 你的第一次异步爬行pybash docker pull Unclecode/crawl4ai:最新
def main():
与 AsyncWebCrawler() 异步作为爬虫:
````蟒蛇
导入异步
从crawl4ai导入AsyncWebCrawler

异步 def main():
与 AsyncWebCrawler() 异步作为爬虫:
结果=等待crawler.arun(url =“https://crawl4ai.com”)
打印(结果.markdown[:1000])

如果 __name__ == "__main__":
asyncio.run(主())

h crwl https://example.com -o markdown ````支持的输出:markdownhtmljsonlinksscreenshot。—## 高级:LLM 结构化提取,无需编写单个 CSS 选择器这就是 Crawl4AI 从“便捷”转向“改变游戏规则”的地方。 您不必维护在网站重新设计其 CSS 时就会崩溃的脆弱选择器,而是用简单的英语和 bash 描述您想要的内容 crwl https://example.com -o markdown

OpenAI 的 API 页面获取定价数据第 1 步 — 使用 Pydantic 定义数据模式:````蟒蛇
从 pydantic 导入 BaseModel、Field类模型定价(BaseModel):
model_name: str = Field(..., description="模型的名称")
input_cost: str = Field(..., description="每 1M 输入令牌的成本")
output_cost: str = Field(..., description="每 1M 输出令牌的成本")
````第
2 步 — 配置 LLM 提取策略:````蟒蛇
导入操作系统
导入异步
从crawl4ai导入AsyncWebCrawler,BrowserConfig,Cra```
pytho
n
从 pydantic 导入 BaseModel、Field

类模型定价(BaseModel):
model_name: str = Field(..., description="模型的名称")
input_cost: str = Field(..., description="每 1M 输入令牌的成本")
output_cost: str = Field(..., description="每 1M 输出令牌的成本")

openai /gpt-4o", api_token=os.getenv(‘OPENAI_API_KEY’), 模式=ModelPricing.model_json_schema(), extract_type=“架构”, 指令=( “提取所有提到的模型名称及其输入和输出代币价格。” “将每个条目的格式设置为:{‘model_name’: ‘GPT-4``` pytho n 导入操作系统 导入异步 从crawl4ai导入AsyncWebCrawler,BrowserConfig,CrawlerRunConfig,CacheMode 从crawl4ai.extraction_strategy导入LLMExtractionStrategy

异步 def main(): browser_config = BrowserConfig(详细=True)

run_config = CrawlerRunConfig( word_count_threshold=1, extract_strategy=LLMExtractionStrategy( 提供者=“openai/gpt-4o”, api_token=os.getenv(‘OPENAI_API_KEY’), 模式=ModelPricing.model_json_schema(), extract_type=“架构”, 指令=( “提取所有提到的模型名称及其输入和输出代币价格。” “将每个条目的格式设置为:{‘model_name’: ‘GPT-4o’, ‘input_cost’: ‘US$5.00 / 1M 代币’, …}” ), input_format =“降价”, 详细=真 ), cache_mode=CacheMode.BYPASS, )

与 AsyncWebCrawler(config=browser_config) 异步作为爬虫: 结果 = 等待爬虫.arun( url=‘https://openai.com/api/pricing/', 配置=运行配置 ) 打印(结果.extracted_content)

如果 name == “main”: asyncio.run(主())

romcrawl
4ai导入AsyncWebCrawler,CrawlerRunConfig
从crawl4ai.deep_crawling导入BFSDeepCrawlStrategy
从crawl4ai.content_scraping_strategy导入LXMLWebScrapingStrategy异步 def main():
配置=爬虫运行配置(
deep_crawl_strategy=BFSDeepCrawlStrategy(
最大深度=2,
include_external=False
),
scraping_strategy=LXMLWebScrapingStrategy(),
详细=真
)与 AsyncWebCrawler() 异步作为爬虫:
结果=等待crawler.arun(“https://docs.crawl4ai.com/”,config = config)
print(f"抓取的总页数:{len(结果)}")

对于结果 [:5] 中的 r:
print(f"URL: {r.url} | 深度: {r.metadata.get('深度', 0)}")如果 __name__ == "__main__":
asyncio.run(主())
````### RAG 管道的 BM25 内容过滤构建知识库时,您通常不需要整个页面,只需要与查询相关的段落。 Crawl4AI 的 BM25 过滤器解决了这个问题:````蟒蛇
从crawl4ai.content_filter导入BM25ContentFilter过滤器 = BM25ContentFilter(
query="异步爬虫配置方法",
阈值=0.1
)
````此过滤器根据您的查询对页面上的每个文本块进行排名,并在您支付嵌入或矢量存储费用之前删除相关性较低的内容。---## 头对头:Crawl4AI vs Firecrawl vs ScrapeGraphAI vs Scrapy (2026)| 尺寸| 爬行4AI | 火爬| 刮图人工智能 | Scrapy |
|------------|----------|------------|----------------|--------|
| **GitHub 之星** | 63k+ | 78k+ | 23k+ | 50k+ |
| **部署** | 自托管/Docker | SaaS API+开源| 开源Python | 开源框架|
| **法学硕士提取** | 本地 | 支持 | 核心功能(图遍历)| 手动集成|
| **输出** | Markdown / JSON | Markdown / JSON | JSON | JSON / CSV / XML |
| **JS 渲染** | 剧作家(内置)| 支持 | 有限公司| 需要```
pytho
n
导入异步
从crawl4ai导入AsyncWebCrawler,CrawlerRunConfig
从crawl4ai.deep_crawling导入BFSDeepCrawlStrategy
从crawl4ai.content_scraping_strategy导入LXMLWebScrapingStrategy

异步 def main():
配置=爬虫运行配置(
deep_crawl_strategy=BFSDeepCrawlStrategy(
最大深度=2,
include_external=False
),
scraping_strategy=LXMLWebScrapingStrategy(),
详细=真
)

与 AsyncWebCrawler() 异步作为爬虫:
结果=等待crawler.arun(“https://docs.crawl4ai.com/”,config = config)
print(f"抓取的总页数:{len(结果)}")

对于结果 [:5] 中的 r:
print(f"URL: {r.url} | 深度: {r.metadata.get('深度', 0)}")

如果 __name__ == "__main__":
asyncio.run(主())
`` 不是人工智能原生的,但经过了十多年的战斗考验。**混合推荐**:使用 Firecrawl 执行基于 API 的快速任务,使用 Crawl4AI 执行大容量、自托管管道。 许多制作团队都同时运营。---## 生产部署和性能调优### Docker 与 FastAPI 和 JWT 身份验证将 Crawl4AI 部署为内部微服务:````
bas
h
docker run -p 8000:8000 \
-e CRAWL4AI_API_TOKEN=your_jwt_secret \
叔叔代码/crawl4ai:最新
````从您的应用程序中调用它:````
bas
h
卷曲 -X POST http://localhost:8000/crawl \
-H“授权:持有者your_jwt_secret”\
-d '{"url": "https://example.com", "output_format": "markdown"}'
````### 代理和并发配置对于生产规模的爬网,配置代理轮换和无头浏览器池:````蟒蛇
browser_config = 浏览器配置(
无头=真,
代理配置={
“服务器”:os.getenv(“PROXY_SERVER”),
“用户名”:os.getenv(“PROXY_USERNAME”),
“密码”:os.getenv```
pytho
n
从crawl4ai.content_filter导入BM25ContentFilter

过滤器 = BM25ContentFilter(
query="异步爬虫配置方法",
阈值=0.1
)
``PA 尚未完成渲染 | 使用 wait_until="networkidle" 或注入延迟 |
| 被反机器人拦截 | 指纹检测| 启用隐身模式; 轮换住宅代理|
| LLM 提取超时 | 页面对于上下文窗口来说太大 | LLM 提取之前使用 CSS 选择器进行预过滤 |
| Playwright 安装失败 | Chrom 的下载被阻止 | 使用 `PLAYWRIGHT_BROWSERS_PATH=0` 或镜像 URL |---







## 推荐的托管和基础设施在将这些工具部署到生产中之前,您需要坚实的基础设施。 dibi8实际使用和推荐的两个选项:- **{< aff "digitalocean" "footer-cta-legacy" "DigitalOcean" >}}** — 200 美元免费赠金,为期 60 天,覆盖全球 14 个以上区域。 运行开源人工智能工具的独立开发者的默认选项。 
- **{< aff "htstack" "footer-cta-legacy" "HTStack" >}}** — 从中国大陆低延迟访问的香港 VPS。 这与托管 dibi8.com 的 IDC 是同一个 IDC——在生产中经过了实际考验。*附属链接 - 它们不会花费您额外的费用,并且有助于保持 dibi8.com 的运行。*## 最终想法和建议的后续步骤Crawl4AI 并不是所有抓取需求的通用替代品。 但在“将网络数据输入法学硕士”这一特定领域,它是当今最专注、增长最快且经过社区验证的工具。**如果您正在构建...**- **聊天机器人知识库** → 将 Crawl4AI 与 Milvus、Chroma 或 Weaviate 配对,形成完全本地的 RAG 堆栈。 
- **训练数据集** → 使用深度爬取 + BM25 过滤来策划高质量、特定领域的语料库。 
- **AI 代理** → 将 Crawl4AI 注册为 MCP 工具,并为您的代理提供自主网络阅读功能。**建议的行动计划:**1. 在目标域上运行第 2 部分中的 10 行快速入门示例。 
2.检查Markdown质量。 如果它对于您的用例来说足够干净,请继续。 
3. 使用 Pydantic 模式设置 LLM 提取,并将准确性与旧版 CSS 选择器管道进行比较。 
4. 通过 Docker 进行部署,并根据您的卷要求对吞吐量进行基准测试。 
5. 重新审视 Se```
bas
h
中的比较表
docker run -p 8000:8000 \
-e CRAWL4AI_API_TOKEN=your_jwt_secret \
叔叔代码/crawl4ai:最新

GitHub ](https://github.com/unclecode/crawl4ai)

  • 官方文档 v0.8.x
  • [Crawl4AI 与 Firecrawl bash 卷曲 -X POST http://localhost:8000/crawl \ -H“授权:持有者your_jwt_secret”\ -d '{"url": "https://example.com", "output_format": "markdown"}' (https://www.firecrawl.dev/blog/best-open-source-web-crawler) —发布于 2026 年 5 月 19 日。 数据来源于 GitHub、官方文档和公开的基准测试。 Crawl4AI迭代速度快; 始终与最新文档进行交叉检查。

参考文献和 Sour``` #

pytho n browser_config = 浏览器配置( 无头=真, 代理配置={ “服务器”:os.getenv(“PROXY_SERVER”), “用户名”:os.getenv(“PROXY_USERNAME”), “密码”:os.getenv(“PROXY_PASSWORD”), }, 详细=真 )

com
/ScrapeGraphAI/Scrapegraph-ai)
- [Scrapy](https://github.com/scrapy/scrapy)
- [Ollama](https://github.com/ollama/ollama)
- [Milvus](https://github.com/milvus-io/milvus)
- [色度](https://github.com/chroma-core/chroma)
- [Weaviate](https://github.com/weaviate/weaviate)
- [FastAPI](https://github.com/fastapi/fastapi)
- [模型上下文协议](https://github.com/modelcontextprotocol/modelcontextprotocol)

💬 留言讨论