从你的 Node.js 应用中抓取单个页面、爬取整个站点,并映射 URL。SDK 会处理分页、重试和异步任务轮询,让你能够专注于使用返回的数据。
安装#
使用 npm 安装 SDK:
使用#
- 在 firecrawl.dev 获取 API 密钥
- 将该密钥设置为名为
FIRECRAWL_API_KEY的环境变量,或作为参数传递给Firecrawl类。
没有 API 密钥? 你可以在不提供密钥的情况下构造 Firecrawl,并在免密钥的 Free 档位中使用 scrape、search 和 interact (按 IP 限流——请参见 限流) 。所有其他方法都需要密钥。
以下是一个包含错误处理的 SDK 使用示例:
抓取单个 URL#
使用 scrape 方法抓取单个 URL,并返回结构化的页面数据。
解析上传的文件#
当你想上传本地文件 (html、pdf、docx、xlsx 等) ,而不是通过 URL 抓取时,请使用 parse。
parse 不支持 changeTracking,也不支持仅适用于浏览器的选项,例如 screenshot、branding、actions、waitFor、location 和 mobile。
爬取网站#
使用 crawl 方法从单个 URL 开始爬取整个网站。你可以设置页面上限,将范围限制在特定域名内,并选择输出格式。请参见 Pagination 了解自动和手动分页。
仅爬取 Sitemap#
使用 sitemap: "only" 仅爬取 sitemap 中的 URL (起始 URL 始终会被包含,并且会跳过 HTML 链接发现过程) 。
启动 爬取#
使用 startCrawl 可启动一次爬取且无需等待其完成。该方法会返回一个任务 ID,供你稍后轮询。若需要阻塞等待直到完成,请改用 crawl。分页行为和限制详见 Pagination。
检查爬取状态#
使用 checkCrawlStatus 方法检查爬取任务当前是仍在运行、已完成还是已失败。传入 startCrawl 返回的任务 ID。
取消爬取#
使用 cancelCrawl 方法取消正在运行中的爬取。传入由 startCrawl 返回的任务 ID。
网站映射#
使用 map 方法可发现网站上的所有 URL。传入起始 URL,即可返回已发现页面的列表。
运行代理#
使用 agent 方法将研究或提取任务交给代理。传入 prompt、用于定义输出结构的可选 schema,以及用于限制本次运行额度消耗的 maxCredits。
代理运行是异步的。使用 startAgent 可立即获取任务 ID,然后通过 getAgentStatus 轮询任务状态。
每次运行还会记录执行追踪和输出快照,你可以使用 getAgentTrace 和 getAgentSnapshot 读取它们。事件 schema 和完整参数列表请参见 Agent。
使用 WebSockets 爬取网站#
使用 watcher(jobId, options) 实时流式获取爬取结果。你会在每个页面完成爬取时立即收到结果,无需等待整个任务结束。
分页#
当有更多数据可用时,Firecrawl 的 /crawl 和 batch 端点会返回一个 next URL。Node SDK 默认会自动分页并汇总所有文档;在这种情况下,next 将为 null。你可以禁用自动分页或设置上限。
抓取#
使用 waiter 方法 crawl 以获得最简便的体验,或启动一个任务并手动逐页处理。
简单爬取 (自动分页,默认)
- 请参阅网站爬取中的默认流程。
手动抓取与分页控制 (单页)
- 先启动作业,然后将
autoPaginate: false设置为禁用自动分页,逐页获取。
设有限制的手动抓取 (自动分页 + 提前停止)
- 保持自动分页开启,但可通过
maxPages、maxResults或maxWaitTime提前停止。
批量抓取#
使用等待器方法 batchScrape,或手动启动作业并逐页处理。
简单批量抓取 (自动分页,默认)
- 默认流程请参见批量抓取。
手动批量抓取并控制分页 (单页)
- 启动作业,将
autoPaginate: false以禁用自动分页,并按页逐一获取。
手动批量抓取并设定限制 (自动分页 + 提前停止)
- 保持自动分页开启,但可通过
maxPages、maxResults或maxWaitTime提前停止。
浏览器#
在云端启动浏览器会话并远程执行代码。
创建会话#
执行代码#
使用 JavaScript,而不是 Python:
通过 agent-browser 执行 bash:
浏览器配置#
保存浏览器状态 (cookies、localStorage 等) ,以便跨会话复用:
通过 CDP 连接#
要获得对 Playwright 的完全控制能力,请使用 CDP URL 直接连接:
查看并关闭会话#
绑定到抓取任务的交互式会话#
使用抓取任务 ID,可在该次抓取回放后的页面上下文中继续交互:
interact(jobId, {...})会在绑定到抓取任务的浏览器会话中运行代码。- 首次调用
interact时,会基于抓取上下文自动初始化会话。 - 对同一任务 ID 再次调用
interact时,会复用当前的浏览器状态。 - 完成后,可使用
stopInteraction(jobId)停止交互式会话。
错误处理#
SDK 会针对 Firecrawl API 返回的任何错误抛出包含详细信息的异常。请像上面的示例所示,使用 try/catch 代码块包装调用。
你是需要 Firecrawl API 密钥的 AI 代理吗?请参阅 firecrawl.dev/agent-onboarding/SKILL.md 了解自动化接入说明。

