周一至周五 09:00 - 18:00(UTC+08:00) 
©2026 NST LABS TECH LTD. 保留所有权利。 Firecrawl Scrape Endpoint Guide: Formats, Errors and TestsKai WatanabeScraping Infrastructure Evangelist
掌握 Firecrawl 抓取端点以供生产使用
TL;DR
- Firecrawl当前的单页面API是
POST https://api.firecrawl.dev/v2/scrape,使用Bearer API密钥进行身份验证。
formats数组决定响应是否包含Markdown、HTML、链接、截图、结构化JSON或其他支持的文档。
- 掌握Firecrawl抓取端点意味着验证响应信封和页面语义,而不仅仅是接收HTTP
200。
- 有意使用
onlyMainContent、缓存控制、超时、位置和有限操作;复杂交互属于Firecrawl的Interact端点。
- 将受管抓取API在可用页面准确性、诊断、延迟和计费模型上与您自己的目标集进行比较。
Firecrawl抓取端点的功能
Firecrawl抓取端点将一个已知URL转换为一个或多个请求的页面表示。Firecrawl在其基础架构上处理获取和浏览器渲染,然后返回通过formats选择的文档。当您已经知道页面URL时,这是正确的Firecrawl操作;站点发现属于抓取操作,而多步骤浏览器行为越来越属于Interact。
Firecrawl的当前抓取端点参考将url标记为必需,并将Bearer身份验证标记为强制。更广泛的Firecrawl v2介绍确认了https://api.firecrawl.dev基础URL和常规HTTP状态处理。
一个受管端点将浏览器、代理和渲染操作从您的应用程序中移除,但它并不知道对您的业务而言什么才算正确的记录。应用程序仍然需要接受规则、稳定身份、保留策略和重试边界。在评估Nstproxy抓取或内部浏览器车队时,同样的划分仍然适用。
Firecrawl抓取端点请求映射
最小请求包含url;生产请求通常只会添加影响所需输出的控件。
| 字段 | 更改内容 | 决策规则 |
|---|
url | 目标页面 | 使用公共或授权的HTTP(S) URL |
formats | 返回的文档 | 仅请求消费者使用的输出 |
onlyMainContent | 模板减少 | 对于类似文章的文本启用;在应用程序页面上测试 |
waitFor | 额外的页面延迟 | 仅在已知元素或请求需要时间时使用 |
timeout | 最大处理窗口 | 保持有界;重试异步操作或重新设计慢工作 |
location | 地理/语言上下文 | 当本地化输出是接受的一部分时使用 |
storeInCache | Firecrawl是否可以缓存页面 | 当保留或新鲜度要求禁止时禁用 |
actions | 抓取前的简单页面操作 | 保持确定性;复杂流程使用Interact |
当前参考列出了60秒的默认超时和允许的范围从1,000到300,000毫秒。这些限制对变更敏感,因此在发布客户端验证前确认它们。Firecrawl还记录了仅缓存和减少保留控制;将它们视为数据治理选择,而不是性能切换。
在不泄露API密钥的情况下进行身份验证
Firecrawl期待Authorization: Bearer <token>。将令牌放入秘密管理器或环境变量中,绝不要将其写入源代码、日志、截图或提交的.env文件中。
下面的示例使用$FIRECRAWL_API_KEY。它们基于当前第一方文档进行了模式验证,但在没有用户拥有的Firecrawl凭证的情况下无法在这里执行。针对您的环境中的授权测试URL运行它们,并在采用模式之前捕获响应。
详细教程:掌握Firecrawl抓取端点调用
下面的过程从Markdown开始,然后添加结构化输出和操作检查。
方法1:请求干净的Markdown
步骤1:发送最小有用请求
curl --fail-with-body --silent --show-error \
--request POST 'https://api.firecrawl.dev/v2/scrape' \
--header "Authorization: Bearer $FIRECRAWL_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"url": "https://example.com/",
"formats": ["markdown"],
"onlyMainContent": true,
"timeout": 60000
}'
--fail-with-body在返回失败的HTTP状态时保留服务器的错误主体。不要假设命令的成功证明内容的正确性。
步骤2:验证响应信封
成功的Firecrawl响应包括一个顶级成功指示器和一个数据对象。在阅读文档之前检查这两者:
const response = await fetch('https://api.firecrawl.dev/v2/scrape', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.FIRECRAWL_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://example.com/',
formats: ['markdown'],
onlyMainContent: true
})
});
const payload = await response.json();
if (!response.ok || payload.success !== true) {
throw new Error(payload.error ?? `Firecrawl failed with ${response.status}`);
}
const markdown = payload.data?.markdown;
if (typeof markdown !== 'string' || markdown.trim().length < 80) {
throw new Error('Firecrawl returned no acceptable Markdown');
}
接受检查还应查找特定目标标记:标题、产品标识符、日期、表头或其他字段,以证明返回了预期页面。这可以捕捉同意页面、软错误以及已呈现但未达到所需状态的内容。
测试生产抓取替代方案
在您的真实 URL、格式和接受检查上比较 Firecrawl 与 Nstproxy Crawl。
探索 Nstproxy Crawl
|
https://example.com/article
抓取
|
方法 2:请求结构化 JSON
第 1 步:定义狭窄的架构
结构化提取在架构仅描述必要字段及其类型时效果更佳。当页面提供稳定的源标识符时需要使用它。避免要求模型推断页面中不存在的值。
{
"url": "https://example.com/product/123",
"formats": [
{
"type": "json",
"prompt": "提取可见的产品记录。对于缺失的可选字段返回 null。",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"sku": {"type": ["string", "null"]},
"availability": {"type": ["string", "null"]}
},
"required": ["name"]
}
}
]
}
第 2 步:在架构验证后验证语义
架构合规性证明形状,而非真相。拒绝通用名称,标准化空白,将可用性映射到批准的词汇,并将源 URL 或 SKU 与作业输入进行比较。当审计要求允许时,存储原始文档或内容哈希,以便操作人员可以解释接受的记录是如何生成的。
方法 3:捕捉屏幕截图或 HTML 进行诊断
Markdown 对下游文本使用有效,但它可能隐藏提取失败的原因。当视觉状态重要时请求屏幕截图,当 DOM 结构重要时请求 HTML。除非它们具有明确的调试、合规或档案目的,否则不要在每个重复作业中请求大型文档。
Firecrawl 端点支持诸如等待、点击、输入、滚动、屏幕截图和 JavaScript 执行等操作。当前文档建议对于复杂交互使用单独的 Interact 端点。保持操作简短且确定;经过身份验证的工作流需要明确许可和仔细处理机密。
缓存、新鲜度和数据保留
缓存行为改变新鲜度和数据处理。缓存的响应可以减少延迟,但对于需要当前观察的库存、政策或监控作业而言,可能不可接受。相反,storeInCache: false 在不应被提供者保留页面时是合适的。
记录每个作业请求的新鲜度政策。如果工作流比较更改,请持久化集合时间和内容哈希;不要将提供商缓存年龄视为源页面的发布时间。Firecrawl 的官方文章关于 使用抓取 API 涉及格式和示例,但生产接受仍然是特定于应用程序的。
错误处理、速率限制和重试
仅重试可能是短暂失败的情况。Firecrawl 记录 429 用于速率或并发限制;遵守任何重试指导,限制尝试次数,并加入指数回退和抖动。重试选定的 5xx 失败、网络中断和超时,但不要对无效 URL、身份验证失败或架构错误进行重复重试。
使下游写入幂等。一个作业关键字可以结合规范化 URL、请求格式集、新鲜度窗口和提取架构版本。记录作业关键字、HTTP 状态、Firecrawl 请求或抓取标识符(当返回时)、经过的时间、文档大小和验证结果。切勿记录 Bearer 令牌或敏感请求头。
如果团队后来从托管提取转移到直接代理路由,请检查 轮换代理会话 如何影响重试和页面一致性,然后再更改收集器。
当 Firecrawl 抓取不是正确操作时
对于一个已知页面使用 /scrape。当需要跨内部链接的有界发现、大量 URL 的已知列表的批处理能力时使用 Firecrawl 爬取,当工作流需要持续的浏览器状态或多个复杂操作时使用 Interact。当它以明确的权限和稳定的标识符公开所需的记录时,官方数据 API 更可取。
对于提供商选择,比较完整的操作结果。Nstproxy Crawl可以针对相同的URL集和接受环境进行测试。Nstproxy Crawl专门用于页面抓取和受限网站爬取,具有多个工件和任务操作;其适用性取决于确切的渲染、地理、诊断和存储要求。
- **页面和站点工作流:**同步或异步页面抓取与受限爬取提交和轮询并列。
- **工件选择:**Markdown、HTML、原始数据、链接、截图和PDF满足不同的消费者和调试需求。
- **任务可见性:**任务ID和状态检查支持慢速页面和可重复操作。
- **选择边界:**团队仍然必须基准可用页面率、延迟、完整性和每条接受记录的成本。
结论:将抓取视为数据合同的一个阶段
掌握Firecrawl的抓取端点需要的不仅仅是选择formats。可靠的集成保护API密钥,限制时间和操作,验证响应信封,应用特定于目标的接受测试,并以幂等方式存储记录。
从五个具有代表性的授权URL开始:一个静态页面、一个JavaScript页面、一个重定向、一个预期失败和一个区域敏感页面。测量可用输出,而不是HTTP成功。如果地理路由和集中代理操作后成为瓶颈,请评估Nstproxy Proxy Manager作为相关网络控制层。
体验Nstproxy — 今天开始您的免费试用
常见问题
当前Firecrawl v2单页面端点是POST https://api.firecrawl.dev/v2/scrape。发送Bearer API密钥和一个包含至少url的JSON主体。
Firecrawl抓取处理一个已知的URL,而爬取从配置边界内的起始URL发现和处理多个页面。根据URL发现是否是工作的一部分来选择。
请求Markdown用于文本和LLM摄取,HTML用于DOM感知处理,JSON用于定义记录,截图用于视觉证据。仅请求下游消费者或诊断过程使用的工件。
问:HTTP 200是否意味着Firecrawl抓取成功?
HTTP 200并不能单独证明所需的页面数据是可用的。检查Firecrawl的成功字段、所需工件、页面元数据和特定于目标的内容标记。
问:我应该如何处理Firecrawl 429错误?
使用有界的指数回退和抖动处理Firecrawl 429响应,遵循服务器 retry 指南(如果提供),并减少提交率或并发性。保持写入操作幂等,以确保重试不会重复记录。
Firecrawl支持在抓取请求中进行简单操作,但其当前文档将复杂的浏览器交互指向Interact端点。仅在明确授权和安全的cookie处理下使用经过身份验证的交互。
Firecrawl使用基于信用的服务模型,其消耗因操作和格式而异。请查看当前的官方定价和计费文档,而不是在应用逻辑中嵌入变化的数字价格。
Aug. 28th 2026
立即访问住宅、数据中心、IPv6 与 ISP 高质量代理池。