第 7 课 — Map 与 Crawl:整站采集策略

⏱ 预计阅读 3 分钟 更新于 2026/5/7
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

当你需要从一个大型网站抓取大量内容(如构建 RAG 知识库)时,单页抓取已力不从心。Firecrawl 提供了 Map 和 Crawl 两个强大的整站级工具。

7.1 Map:发现站点的所有 URL

Map 就像一个快速的“测绘员”,它会扫描目标网站并返回一个包含所有公开 URL 的列表,而不抓取页面内容

为什么用 Map?

  • 速度极快:几秒钟内发现成千上万个链接。
  • 定向搜索:使用 search 参数只找出相关的 URL。

    示例:firecrawl_map(url="https://docs.firecrawl.dev", search="webhook") 只返回路径包含 webhook 的文档地址。


7.2 Crawl:全自动深度抓取

Crawl 会沿着链接深度抓取整站的内容。这是一个异步操作,适合处理大规模任务。

关键参数:

  • maxDiscoveryDepth:抓取深度。建议设为 1-3,过深容易抓到无关内容。
  • limit:总抓取页数限制。建议设为 ≤ 50,以防返回数据量过大导致 LLM 处理失败。
  • includePaths:只抓取匹配路径下的页面(如 ["/docs/"])。

7.3 异步工作流 (Job ID)

由于 Crawl 耗时较长,它的工作模式如下:

  1. 发起请求:返回一个 Job ID
  2. 轮询状态:使用 firecrawl_check_crawl_status 传入 ID。
  3. 获取结果:当状态变为 completed 时,获取包含所有页面内容的数组。

7.4 最佳实践:Map + Batch Scrape (推荐)

对于追求极致控制的开发者,我们推荐以下策略,而非直接使用 Crawl:

  1. Step 1:用 Map 发现全站 URL。
  2. Step 2:在应用层根据关键词、深度或路径过滤出真正需要的 URL 列表。
  3. Step 3:循环调用 Scrape 或使用 Extract 对这些 URL 进行分批抓取。

这种策略的优势:

  • 更精准:完全避开无关页面(如登录页、法律声明)。
  • 更可靠:单次请求数据量可控,避免 Token 溢出或请求超时。
  • 更省钱:只为真正有价值的页面支付 Credit。