用途
firecrawl-monitor 用于检测网站内容变化,并在变化发生时通过 Webhook 或邮件通知用户。抓取、差异比对、判断和通知均由 Firecrawl 在服务端完成。每次检查中,每个页面会被标记为 same(相同)、new(新增)、changed(变更)、removed(移除)或 error(错误)。
主要能力
按监控目标提供四种模式:
- 单页面:使用
--page <url>,监控一个 URL 的变化。 - URL 批量:使用
--scrape-urls <url,url,...>,监控多个 URL 的变化。 - 整站:使用
--crawl-url <root-url>,监控一次爬取所发现的每个页面的变化。 - 全网搜索:使用
--queries <q,...>加--goal,每次检查运行查询,对未见过的结果发出告警(首次标记为 new,后续检查标记为 same);--goal与--queries必须同时使用。
前三种模式监控的是已知 URL,全网搜索模式则面向整个网络的新结果。
使用方式
创建监控的示例:
# 单页面,自然语言计划,邮件告警
firecrawl monitor create --name "Blog" --schedule "every 30 minutes" \
--goal "Alert when a new blog post is published." \
--page https://example.com/blog \
--email alerts@example.com
# 全网监控:搜索符合目标的新结果
firecrawl monitor create --name "Competitor launches" --schedule "daily at 9:00" \
--queries "competitor product launch,competitor funding round" \
--goal "Alert when a competitor announces a new product or raises funding." \
--search-window 7d --max-results 20 \
--email alerts@example.com
# Webhook 通知
firecrawl monitor create --name "Docs webhook" --schedule "every 30 minutes" \
--goal "Alert when docs content changes." \
--page https://example.com/docs \
--webhook-url https://example.com/hook \
--webhook-events monitor.page,monitor.check.completed
管理与查看:
firecrawl monitor list --limit 20
firecrawl monitor get <monitorId>
firecrawl monitor run <monitorId> # 立即触发一次检查
firecrawl monitor checks <monitorId> # 列出所有检查
firecrawl monitor check <monitorId> <checkId> --page-status changed
firecrawl monitor update <monitorId> --state paused
firecrawl monitor delete <monitorId>
子命令包括:create | list | get | update | delete | run | checks | check。运行 firecrawl monitor <subcommand> --help 可查看完整选项列表。
完成标准:create 返回监控 ID,并通过一次快速验证运行与检查确认目标、状态和通知配置符合预期。
编写或完善 --goal(以及全网监控的 --queries)时可参考 goals.md;当用户关注特定结构化字段(价格、标题、库存标记)并希望按字段比对差异时,参考 json-tracking.md。
适用场景
- 监控博客新文章发布、文档内容变更。
- 监控多个已知 URL 的变化。
- 对整站爬取发现的页面进行持续差异监控。
- 通过全网搜索追踪竞争对手产品发布、融资等新动态。
限制与注意事项
- 每次检查都会消耗其底层抓取、爬取或搜索的积分,另加可选的判断消耗。定价参见 Monitoring pricing。
- 计划间隔最小为 5 分钟。零数据保留(zero-data-retention)团队不可使用监控功能。
- 当用户希望同一 URL 被多次检查时,优先使用一个监控,而不是反复执行一次性抓取。
- 可用
update --state paused临时静默;delete保留给永久结束的监控(--state是 update 的标志,--status是全局 CLI 状态标志)。 - 可用
--page-status changed(或 new、removed、error)过滤检查页面,跳过 same 页面的噪声。 firecrawl monitor run <id>立即触发检查,适合创建后快速验证。--retention-days控制用于差异比对的快照保留时长;高频监控可调低以节省存储。- 外部邮件收件人需主动确认:首次添加时 Firecrawl 发送确认邮件,确认后才接收告警;团队自有地址自动确认。收件人退订后,需由所有者重新添加以触发新的确认邮件。
- 遇到 HTTP 429 / 限流错误时,退避一次:等待约 30 秒后重试一次。若仍持续,应停止,将限流作为阻塞原因报告,并删除为此任务创建的所有监控。切勿循环重试。
- 监控触发的抓取默认 maxAge 为 0,即每次检查都执行新抓取,除非在 JSON 载荷中显式设置 scrapeOptions.maxAge。
相关工具
- firecrawl-scrape:一次性抓取;当检查变为周期性时升级为 monitor。
- firecrawl-crawl:一次性爬取;与这里的
--crawl-url配合实现周期性爬取差异监控。 - firecrawl:顶层工作流指南。
- firecrawl-build-scrape:在应用中构建周期性检查,而非在此处运行。