- URL 分析: 扫描 sitemap 并爬取网站以识别链接
- 遍历: 递归跟随链接以发现所有子页面
- 抓取: 从各页面提取内容,处理 JS 与速率限制
- 输出: 将数据转换为干净的 Markdown 或结构化格式
在 Playground 中试用
在交互式 Playground 中测试爬取功能——无需代码。
爬虫
/crawl 端点
默认情况下,crawler 会包含网站的 sitemap 来发现 URL(
sitemap: "include")。如果你将其设置为 sitemap: "skip",crawler 只会从根 URL 开始,通过 HTML 链接可达的页面来发现内容。像 PDF 这类资源,或仅在 sitemap 中列出但未从任何 HTML 页面直接链接的深层页面将会被遗漏。为获得最大覆盖范围,请保持默认的 sitemap: "include" 设置。安装
用法
每抓取 1 个页面会消耗 1 个积分。抓取的默认
limit 为 10,000 个页面,你可以设置更低的 limit 来控制积分消耗(例如将 limit 设为 100)。某些选项会额外消耗积分:JSON 模式每个页面额外消耗 4 个积分,增强代理每个页面额外消耗 4 个积分,PDF 解析每个 PDF 页面额外消耗 1 个积分。在 Crawl 中使用 Scrape 选项
scrapeOptions(JS)/ scrape_options(Python)在 Crawl 中使用。它们将应用于爬虫抓取的每个页面:formats、proxy、caching、actions、location、tags 等。完整列表参见 Scrape API Reference。
API 响应
ID。
如果你使用 SDK,请参见下方方法,了解 waiter 与 starter 的行为差异。
检查爬取任务
任务结果在完成后 24 小时内可通过 API 获取。此后,你仍可以在活动日志中查看你的爬取历史和结果。
爬取结果中的
data 数组里包含的是 Firecrawl 成功抓取的页面 —— 即使目标站点返回了 404 等 HTTP 错误。metadata.statusCode 字段显示的是目标站点返回的 HTTP 状态码。若要获取 Firecrawl 本身未能成功抓取的页面(例如网络错误、超时或被 robots.txt 拦截),请使用专门的 Get Crawl Errors 端点(GET /crawl/{id}/errors)。响应处理
next URL 参数。你需要请求该 URL 以获取后续的每 10MB 数据。如果没有 next 参数,则表示爬取数据已结束。
skip 参数用于设置每个结果分块所返回的最大条目数。
仅在直接调用 API 时,skip 和 next 参数才生效。
如果你使用 SDK,我们会代为处理,并一次性返回全部结果。
SDK 方法
- 抓取并等待(
crawl):- 等待爬取完成并返回完整响应
- 自动处理分页
- 适用于大多数场景,推荐使用
- 启动后轮询状态(
startCrawl/start_crawl):- 立即返回一个爬取 ID
- 支持手动检查进度/状态
- 适合长时间运行的爬取或自定义轮询逻辑
爬取 WebSocket
Crawl URL and Watch 支持实时数据提取与监控。以 URL 启动爬取,并可通过页面数量上限、允许的域名、输出 formats 等选项进行自定义,适用于即时数据处理需求。
爬取 Webhook
cURL
快速参考
crawl.started- 爬取开始时触发crawl.page- 每成功抓取一个页面时触发crawl.completed- 爬取完成时触发crawl.failed- 爬取出错时触发
安全:验证 Webhook 签名
X-Firecrawl-Signature 请求头,其中含有一个 HMAC-SHA256 签名。务必验证此签名,以确保 webhook 为真实请求且未被篡改。
工作原理:
- 在账户设置中的 Advanced(高级)选项卡 获取你的 webhook 密钥(secret)
- 从
X-Firecrawl-Signature请求头中提取签名 - 使用该密钥对原始请求体计算 HMAC-SHA256
- 使用时间安全函数(timing-safe function)将计算结果与签名请求头中的值进行比较
