- 处理复杂环节:代理、缓存、速率限制、被 JS 阻止的内容
- 支持动态内容:动态网站、JS 渲染站点、PDF、图片
- 输出干净的 Markdown、结构化数据、截图或 HTML
在 Playground 中体验
在交互式 Playground 中测试抓取——无需写代码。
使用 Firecrawl 抓取 URL
/scrape 端点
安装
使用方式
每次抓取会消耗 1 个积分。某些选项会产生额外消耗:JSON 模式每页额外消耗 4 个积分,高级代理 (enhanced proxy) 每页额外消耗 4 个积分,PDF 解析每个 PDF 页面额外消耗 1 个积分。
响应
各 SDK 会直接返回数据对象。cURL 将按下方所示原样返回载荷。抓取 formats
- Markdown (
markdown) - 摘要 (
summary) - HTML (
html) - 页面 HTML 的清洗版本 - 原始 HTML (
rawHtml) - 按页面返回的不经修改的 HTML - 截图 (
screenshot,可选项包括fullPage、quality、viewport) — 截图 URL 会在 24 小时后过期 - 链接 (
links) - JSON (
json) - 结构化输出 - 图片 (
images) - 提取页面中的所有图片 URL - 品牌 (
branding) - 提取品牌标识与设计系统
提取结构化数据
/scrape (使用 JSON) 端点
JSON
无需 schema 的提取
prompt,即可在不提供 schema 的情况下进行提取。LLM 会自行决定数据结构。
JSON
JSON 格式选项
json 格式时,在 formats 中传入一个对象,包含以下参数:
schema:用于结构化输出的 JSON Schema。prompt:可选提示;在提供 schema 时或仅需轻量指引时用于辅助抽取。
提取品牌识别度
/scrape (品牌信息) 端点
响应
品牌配置会返回一个完整的BrandingProfile 对象,其结构如下:
Output
品牌档案结构
branding 对象包含以下属性:
colorScheme: 检测到的配色方案 ("light"或"dark")logo: 主徽标的 URLcolors: 包含品牌颜色的对象:primary、secondary、accent: 主要品牌色background、textPrimary、textSecondary: 界面颜色link、success、warning、error: 语义颜色
fonts: 页面中使用的字体系列数组typography: 详细的排版信息:fontFamilies: 正文、标题与代码字体系列fontSizes: 标题与正文的尺寸定义fontWeights: 字重定义 (细体、常规、中等、粗体)lineHeights: 不同文本类型的行高值
spacing: 间距与布局信息:baseUnit: 基础间距单位 (像素)borderRadius: 默认圆角padding、margins: 间距值
components: UI 组件样式:buttonPrimary、buttonSecondary: 按钮样式input: 输入框样式
icons: 图标样式信息images: 品牌图像 (logo、favicon、og:image)animations: 动画与过渡设置layout: 布局配置 (栅格、页眉/页脚高度)personality: 品牌个性特征 (语气、调性、目标受众)
与其他 formats 结合使用
使用 actions 与页面交互
wait action,为页面加载预留足够时间。
示例
输出
位置与语言
工作原理
用法
要使用位置和语言设置,请在请求体中包含location 对象,并提供以下属性:
country:ISO 3166-1 alpha-2 国家/地区代码 (例如“US”“AU”“DE”“JP”) 。默认值为“US”。languages:按优先级排序的首选语言和区域设置数组。默认使用所设位置对应的语言。
缓存与 maxAge (缓存)
- 默认新鲜度窗口:
maxAge = 172800000毫秒 (2 天) 。如果缓存页面仍在该窗口内,将立即返回;否则会重新抓取页面并写入缓存。 - 性能:在数据对时效性要求不高时,抓取速度可提升至最多 5 倍。
- 始终获取最新:将
maxAge设为0。注意,这会完全绕过缓存,因此每次请求都会走完整的抓取流水线,这意味着请求完成所需时间更长,也更有可能失败。如果对每个请求的实时性不是绝对关键,建议使用非零的maxAge。 - 避免存储:如果不希望 Firecrawl 为本次请求缓存/存储结果,将
storeInCache设为false。 - 仅查缓存:设置
minAge可仅执行缓存查询,而不会触发新的抓取。该值以毫秒为单位,指定缓存数据必须满足的最小缓存时长。如果未找到缓存数据,将返回带有错误代码SCRAPE_NO_CACHED_DATA的404。将minAge设为1可接受任意缓存数据,无论其缓存时长是多少。 - 变更跟踪:包含
changeTracking的请求会绕过缓存,因此会忽略maxAge。
批量抓取多个 URL
工作原理
/crawl 端点的运行方式非常相似。它会提交一个批量抓取作业,并返回一个作业 ID,用于检查该批量抓取的状态。
SDK 提供两种方式:同步与异步。同步方式会直接返回批量抓取作业的结果,异步方式则会返回一个作业 ID,供您用于查询批量抓取的状态。
使用方法
Response
同步执行
已完成
异步
/batch/scrape/{id} 端点来查看批量抓取的状态。该端点应在作业仍在运行期间或刚完成后使用,因为批量抓取作业会在 24 小时后过期。

