Skip to main content
Firecrawl 高效爬取网站,在处理复杂的 Web 基础架构的同时提取全面数据。流程如下:
  1. URL 分析: 扫描 sitemap 并爬取网站以识别链接
  2. 遍历: 递归跟随链接以发现所有子页面
  3. 抓取: 从各页面提取内容,处理 JS 与速率限制
  4. 输出: 将数据转换为干净的 Markdown 或结构化格式
确保可从任意起始 URL 全面采集数据。

在 Playground 中试用

在交互式 Playground 中测试爬取功能——无需代码。

爬虫

/crawl 端点

用于抓取某个 URL 及其所有可访问的子页面。该操作会提交一个抓取任务,并返回任务 ID 以便查询抓取状态。
默认情况下,如果页面中的子链接并非你提供的 URL 的下级路径,Crawl 会忽略它们。因此,若你抓取 website.com/blogs/,则不会返回 website.com/other-parent/blog-1。若需要包含 website.com/other-parent/blog-1,请使用 crawlEntireDomain 参数。若在抓取 website.com 时需要抓取其子域名(如 blog.website.com),请使用 allowSubdomains 参数。
默认情况下,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 选项

Scrape 端点的所有选项都可通过 scrapeOptions(JS)/ scrape_options(Python)在 Crawl 中使用。它们将应用于爬虫抓取的每个页面:formats、proxy、caching、actions、location、tags 等。完整列表参见 Scrape API Reference

API 响应

如果你使用 cURL 或 starter 方法,将返回一个用于检查爬取状态的 ID
如果你使用 SDK,请参见下方方法,了解 waiter 与 starter 的行为差异。

检查爬取任务

用于检查爬取任务的状态并获取结果。
任务结果在完成后 24 小时内可通过 API 获取。此后,你仍可以在活动日志中查看你的爬取历史和结果。
爬取结果中的 data 数组里包含的是 Firecrawl 成功抓取的页面 —— 即使目标站点返回了 404 等 HTTP 错误。metadata.statusCode 字段显示的是目标站点返回的 HTTP 状态码。若要获取 Firecrawl 本身未能成功抓取的页面(例如网络错误、超时或被 robots.txt 拦截),请使用专门的 Get Crawl Errors 端点(GET /crawl/{id}/errors)。

响应处理

响应会根据爬取任务的状态而有所不同。 对于未完成的任务或超过 10MB 的大型响应,会返回一个 next URL 参数。你需要请求该 URL 以获取后续的每 10MB 数据。如果没有 next 参数,则表示爬取数据已结束。 skip 参数用于设置每个结果分块所返回的最大条目数。
仅在直接调用 API 时,skip 和 next 参数才生效。 如果你使用 SDK,我们会代为处理,并一次性返回全部结果。

SDK 方法

使用 SDK 有两种方式:
  1. 抓取并等待crawl):
    • 等待爬取完成并返回完整响应
    • 自动处理分页
    • 适用于大多数场景,推荐使用
响应包括爬取状态及所有抓取到的数据:
  1. 启动后轮询状态startCrawl/start_crawl):
    • 立即返回一个爬取 ID
    • 支持手动检查进度/状态
    • 适合长时间运行的爬取或自定义轮询逻辑

爬取 WebSocket

Firecrawl 基于 WebSocket 的方法 Crawl URL and Watch 支持实时数据提取与监控。以 URL 启动爬取,并可通过页面数量上限、允许的域名、输出 formats 等选项进行自定义,适用于即时数据处理需求。

爬取 Webhook

你可以配置 webhook,在爬取过程中实时接收通知,从而在页面被抓取后立即进行处理,而无需等待整个爬取任务完成。
cURL

快速参考

事件类型:
  • crawl.started - 爬取开始时触发
  • crawl.page - 每成功抓取一个页面时触发
  • crawl.completed - 爬取完成时触发
  • crawl.failed - 爬取出错时触发
基本负载:

安全:验证 Webhook 签名

来自 Firecrawl 的每个 webhook 请求都会包含一个 X-Firecrawl-Signature 请求头,其中含有一个 HMAC-SHA256 签名。务必验证此签名,以确保 webhook 为真实请求且未被篡改。 工作原理:
  1. 在账户设置中的 Advanced(高级)选项卡 获取你的 webhook 密钥(secret)
  2. X-Firecrawl-Signature 请求头中提取签名
  3. 使用该密钥对原始请求体计算 HMAC-SHA256
  4. 使用时间安全函数(timing-safe function)将计算结果与签名请求头中的值进行比较
在验证签名之前,切勿处理任何 webhook。X-Firecrawl-Signature 请求头中的签名格式为:sha256=abc123def456...
有关 JavaScript 和 Python 的完整实现示例,请参阅 Webhook 安全文档

完整文档

有关完整的 webhook 文档(包括事件负载详情、负载结构、高级配置和故障排除指南),请参阅Webhook 文档