用途
crawl4ai 是一个高性能网页爬虫工具,具备智能分块能力。它用于爬取网页、将内容提取为 Markdown,并通过基于 LLM 的骨架规划(skeleton planning)进行内容组织。适用于网页抓取、Markdown 内容提取以及带智能分块与骨架规划的网站数据采集。
主要能力
核心命令为 crawl_url(别名 webCrawl),用于爬取网页,采用原生工作流执行与基于 LLM 的智能分块。
参数说明:
- url(str,必填):目标爬取 URL。
- action(str,默认 "smart"):操作模式,可选 "smart"、"skeleton"、"crawl"。
- fit_markdown(bool,默认 true):清理并简化 Markdown 输出。
- max_depth(int,默认 0):最大爬取深度(0 表示单页)。
- return_skeleton(bool,默认 false):同时返回文档骨架(目录)。
- chunk_indices(list[int]):要提取的章节索引列表。
操作模式:
- smart(默认):LLM 生成分块计划,然后提取相关章节。适用于需要特定信息的大型文档。
- skeleton:提取轻量级目录(TOC),不返回完整内容。适用于快速概览、决定阅读哪些部分。
- crawl:返回完整 Markdown 内容。适用于小型页面、需要完整内容的场景。
运行时传输策略:
- max_depth = 0:使用 HTTP 策略(无浏览器冷启动),延迟更低。
- max_depth > 0:使用浏览器深度爬取策略(BFS),用于多页遍历。
- file://... 且 max_depth = 0:使用本地快速路径(不启动 crawl4ai 运行时引导),用于确定性的本地夹具/本地笔记基准测试。
- 持久化 worker 模式会在请求之间复用 HTTP 爬虫实例,以减少重复初始化开销。
使用方式
示例(保留原始命令格式):
- 智能爬取(默认,带 LLM 分块):tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com"} - 仅骨架(快速获取目录):tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com", "action": "skeleton"} - 完整内容爬取:tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com", "action": "crawl"} - 提取特定章节:tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com", "chunk_indices": [0, 1, 2]} - 深度爬取(跟随链接至深度 N):tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com", "max_depth": 2} - 获取骨架及完整内容:tool:
crawl4ai.CrawlUrlwith{"url": "https://example.com", "return_skeleton": true}
核心概念:
- 骨架规划(Skeleton Planning):LLM 查看目录(约 500 tokens)而非完整内容(约 10k+ tokens)。参考 smart-chunking.md。
- 分块提取(Chunk Extraction):感知 token 的章节提取。参考 chunking.md。
- 深度爬取(Deep Crawling):使用 BFS 策略的多页爬取。参考 deep-crawl.md。
最佳实践:
- 对大型文档先使用 skeleton 模式了解结构。
- 使用 chunk_indices 提取特定章节,而非完整内容。
- 谨慎设置 max_depth > 0,限制爬取页面数以防失控爬取。
- 保持 fit_markdown=true 以获得更干净输出,设为 false 获取原始内容。
高级用法:
- 通过多次独立调用批量处理多个 URL。
- 与知识工具结合用于 RAG 流水线。
- 使用 skeleton + LLM 自动生成分块计划以进行自定义提取。
适用场景
- 需要从大型文档中提取特定信息时使用 smart 模式。
- 需要快速了解文档结构、决定阅读范围时使用 skeleton 模式。
- 需要完整页面内容的小型页面使用 crawl 模式。
- 需要多页遍历时设置 max_depth > 0 进行深度爬取。
- 构建 RAG 流水线时与知识工具结合使用。
限制
关于收费、价格、平台支持范围、具体性能指标等信息,资料中暂未提供。