Skip to main content
Firecrawl 监控会定期执行检查,并在有内容发生变化或出现新内容时通知你或你的代理。使用 /monitor 可以监视已知页面按计划爬取网站,或持续运行网页搜索,以查找与某个目标匹配的新结果。 所有监控类型都遵循相同的工作流:选择一个或多个目标,设置计划,添加一个可选的自然语言目标描述,并在有重要变化时接收 Webhook、电子邮件或 Slack 通知。本页介绍通用配置。若要查看特定目标的设置和示例,请前往 PageWebsite全网页规模 监控页面。

页面监控

监视一个或多个已知 URL,将每次抓取与上一次快照进行 diff,并在页面发生有意义的变化时触发告警。

网站监控

按计划爬取网站,检测新增、变更或移除的页面,并通知你的 Webhook 或收件箱。

全网页规模监控

定期运行网页搜索,并在出现与你的目标匹配的新结果时触发告警。
每次检查都会将页面级结果记录为 samenewchangedremovederror。你可以在每个受监控页面处理完成时接收 Webhook,也可以在每次检查完成后接收一个 Webhook;还可以在发生更改或错误时接收电子邮件摘要、向某个频道发送的 Slack 通知,或组合使用这些通知方式。

目标

每个监控都有一个或多个目标。目标类型决定了每次检查会执行什么: 每个监控支持 1–50 个目标,并且你可以在同一个监控中混合使用不同的目标类型。retentionDays 的默认值为 30,最高可设置为 365 每次创建调用都会返回新创建的监控,其中包含规范化后的 cron、计算得出的 nextRunAtestimatedCreditsPerMonth。启用判定后,estimatedCreditsPerMonth 是一个上限估算值,因为判定额度只会对实际发生变化且被判定的页面计费:
Response

目标与判定

如果你只想在发生有意义的变化时收到告警,请添加一个通俗易懂的 goal。如果设置了 goal 但省略了 judgeEnabled,Firecrawl 会自动启用判定。判定会在已发生变化的页面上运行,并返回一个 judgment,其中包含 meaningfulconfidencereasonmeaningfulChanges 目标如何应用取决于目标:pagewebsite 监控会对已发生变化的页面进行判定,而 entire web-scale monitors 会对每个新的搜索结果进行判定。 如果你想先保存目标、暂时不对变化进行判定,请使用 judgeEnabled: false。只有当监控同时设置了 judgeEnabledgoal 非空时,判定器才会运行。
对于 search 目标 (全网页规模监控) ,除非你设置了 judgeEnabled: false,否则 goal 为必填。对于 scrapecrawl 目标,则为可选。
每次检查都会对底层抓取或爬取照常计费。如果启用了判定,判定器还会为其验证的每个已发生变化的页面额外收取 1 个额度。没有已发生变化页面的检查不会消耗判定额度。
好的目标应简短且明确:说明什么情况应触发告警,重申任何范围限制,例如前 N 项、价格、角色类型、公司、地区、主题、状态或实体,并且仅在排除条件本身属于目标意图时才写入。如果目标范围较宽泛,就保持宽泛;例如,“任何变化” 不应再加入会掩盖变化的噪声过滤条件。 例如,一个具有以下目标的监控:
当匹配的故事进入监控范围时,可能会生成如下这样的 monitor.page Webhook:
monitor.page

调度计划

调度计划可以使用 cron 表达式或简单的自然语言文本来设置。
支持的自然语言示例:
  • every 30 minutes
  • every 15 minutes starting at :07
  • hourly
  • every 2 hours
  • daily
  • daily at 9:00
  • daily at 9am
  • daily at 5:30 PM
  • weekly
最短间隔为 5 分钟。API 响应始终返回规范化后的 cron 表达式。对于文本调度计划,timezone 用于控制像 daily at 9am 这类短语何时运行。文本调度计划在转换为 cron 之前,会先按监控 ID 错开分布,因此多个监控不会在同一时刻同时运行。

变更追踪

页面网站 监控默认会比较每个页面的 markdown 差异,并报告 samechangednewremovederror。如果你想检测特定结构化字段 (如价格、标题、库存状态标记、列表中的条目等) 的变化,请在目标的 scrapeOptions 中添加 changeTracking 格式,并设置 modes: ["json"],以启用 JSON 模式的变更追踪。
变更追踪适用于 scrapecrawl 目标。面向整个网页规模的 (search) 监控会针对新结果触发告警,而不是比较已知页面的差异。请参见 Statuses and dedup

Markdown 模式 (默认)

scrapeOptions.formats 仅为 ["markdown"] 时,检查 响应中的每个已变更页面都会附带统一文本 diff,以及一个 parseDiff 风格的 AST:
Markdown-mode diff

JSON 模式

传入 changeTracking 格式并设置 modes: ["json"],同时提供一个 JSON schema (或用于描述你关注字段的 prompt) 。Firecrawl 会在每次检查时提取该 JSON,并输出一个按字段区分的差异,以字段路径作为键;此外还会附带一个包含当前完整提取结果的 snapshot.json,这样消费方就无需重新获取底层 抓取 结果。
diff 载荷使用提取结果中的 JSON 路径作为键。每个值都是一个 {previous, current} 对:
JSON-mode diff
即使被跟踪的字段都没有变化,但周围的 markdown 发生了变化,JSON 模式监控仍会报告 same,除非你同时启用 git-diff (请参见下方的混合模式) 。该 diff 只关注 schema 中定义的字段。

混合模式 (JSON + git-diff)

如果你同时需要结构化的逐字段差异 以及 原始 markdown 统一 diff,请同时传入这两种模式:
Mixed target (JSON + git-diff)
随后,检查 响应会同时包含 diff.text (markdown sidecar) 和 diff.json (逐字段差异) ,以及提取得到的 snapshot.json
Mixed-mode diff (JSON + git-diff)
混合模式页面会在任一结果形式发生变化时报告 changed

通知

Webhooks

当监控配置了 webhook 时,Firecrawl 可以发送两种监控事件:
  • monitor.page:每个被监控的 抓取 在 抓取 worker 中完成后发送。
  • monitor.check.completed:在完整检查完成汇总后发送。包含检查状态和汇总计数。页面级结果请使用 monitor.page 事件或监控检查 API。
如果对已变更页面执行了有意义变更判定,monitor.page 会包含 isMeaningfuljudgment
Webhook config
monitor.page 载荷:
monitor.page
monitor.check.completed 载荷:
monitor.check.completed
当检查在没有页面级错误的情况下完成时,successtrue。对于失败或部分完成的检查,它为 false;如果可用,error 会包含失败原因。

电子邮件

仅当某次检查出现页面变更、新增、移除或报错时,才会发送电子邮件摘要。
Email config
当某个监控设置了目标并启用判定后,电子邮件摘要会优先展示有意义的变更页面。如果所有变更页面都被判定为噪声,且没有新增、移除或报错的页面,则会抑制发送该电子邮件。 如果省略 recipients,Firecrawl 会将邮件发送给有资格接收系统告警邮件的团队成员。 你最多可以配置 25 个明确指定的收件人。

收件人确认流程

当有新的收件人被添加到某项监控时,Firecrawl 会向其发送一封包含确认链接的电子邮件,以确保对方明确同意接收该监控的通知。如果收件人已是团队成员,则无需确认。

Slack

你也可以将监控通知发送到 Slack 频道。
Slack 通知仅支持在 Dashboard 中使用。它们只能通过监控 Dashboard进行配置,不能通过 API 或 SDKs 配置。
要设置 Slack 通知:
  1. 打开监控 Dashboard。你可以在创建新监控时添加 Slack 通知,也可以将其添加到已存在的监控中。
  2. 在创建监控时,或选择现有监控后,滚动到 通知 并选择 Slack
  3. 系统会提示你完成 OAuth 流程。完成后,选择你希望接收通知的工作区和频道。

查看检查结果

使用 GET /v2/monitor/{monitorId}/checks 获取检查列表,使用 GET /v2/monitor/{monitorId}/checks/{checkId} 查看某次检查的详情。SDKs 默认会自动处理分页。
检查列表可按检查 status 过滤:queuedrunningcompletedfailedpartialskipped_overlap 检查详情响应包含 estimatedCreditsactualCredits、汇总计数以及分页的 pages 数组。estimatedCredits 是该检查预留额度的上限;actualCredits 是 Firecrawl 在确认有多少页面发生变化并需要判定后,最终收取的额度。使用顶层 next URL 获取下一页结果,其分页方式与 爬取 保持一致。你还可以按页面 status 过滤:samenewchangedremovederror。每个已变更页面都包含内联 diff 数据;来自 JSON 模式监控的页面还会包含带有当前提取结果的 snapshot
Markdown-mode response

定价

监控不单独按每个监控收费。每次检查都按其执行的底层 抓取、爬取 或 搜索 计费;此外,如果启用了有效变更判定,则每个发生变更且经判定器确认的页面还会额外消耗 1 个额度。

API 参考