本页内容
竞争对手在周二改了价格。收入团队周四才知道,消息来自一位周三丢掉单子的销售。
常见的做法是自己写一个爬虫:一个 cron、一个 headless 浏览器、一次 diff、一条 Slack 消息——由上个季度恰好有空的人维护。它大概能正常跑一个月。然后某个页面改版,或者跑它的机器被轮换掉,没人发现它已经停了,因为"什么都没发现的监控"和"已经死掉的监控"给出的是完全一样的沉默。
面向 RevOps 的竞品监控 API 把需要运维的那部分挪到你这边之外。你只描述要盯什么;检查、对比和重试成了别人的可用性问题。
面向 RevOps 的竞品监控 API 究竟做什么
你 POST 一个监控——最多 20 个 URL、一个 cron 计划,以及结果发到哪里。CrawlForge 的调度器执行检查,把每个页面与上一次对比,然后把变更投递出去。
curl -X POST https://crawlforge.dev/api/v1/monitors \
-H "X-API-Key: cf_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "competitor pricing",
"targets": [
{ "url": "https://competitor-a.com/pricing", "selector": ".pricing-table" },
{ "url": "https://competitor-b.com/pricing", "selector": "main" }
],
"schedule_cron": "0 7 * * 1-5",
"timezone": "America/New_York",
"notify_emails": ["revops@example.com"],
"webhook_url": "https://example.com/hooks/crawlforge"
}'selector 决定了这套东西能不能扛住真实网站。把对比范围限定在价格表上,导航改版就不再是价格事件;不写它,任何一次营销文案微调都会触发。
对某个目标的第一次检查会捕获基线并报告为 new。之后的每次检查都与上一次对比并把基线向前滚动,所以你收到的是"自上次以来变了什么",而不是"自三月某个周二以来变了什么"。你的基础设施上不需要跑任何东西:调度器每五分钟醒来一次,启动所有到期的检查。完整的端点参考在文档里。
信号如何进入其余的技术栈
通过 webhook——这正是它属于 RevOps 技术栈、而不是某个人浏览器标签页的原因。每次检查会为每个状态不是 unchanged 的页面发送一个 monitor.page 事件,然后发送一个 monitor.check.completed 汇总。
页面事件的负载携带 change_percent、added_count 和 removed_count,以及 diff 两侧各最多 20 行样本——足够让处理程序自己做判断,无需再去抓取任何东西:
- 价格页 URL 上的
change_percent超过你设的阈值——建任务、发到交易频道、通知 PMM。 - 其他情况——记录下来,继续。
有两个请求头很重要。X-Webhook-Signature 是 sha256= 加上用监控的 webhook_secret 对原始请求体计算的 HMAC-SHA256(创建时以及单个监控的 GET 会返回该密钥,列表接口永不返回)——解析之前先验证它。X-Webhook-ID 在重试之间保持不变,而投递最多尝试四次,所以要按它去重,否则竞争对手改一次价就会变成 CRM 里的四条任务。
盯住一个竞争对手要花多少
没有按监控收取的费用,创建、列出或暂停监控都不计费。每次检查按每个目标预留 3 credits——也就是 track_changes 的价格——并对状态为 new、changed 或 unchanged 的目标实际扣费。返回 blocked 或 error 的目标不计费,所以撞上 Cloudflare 的墙不花钱。
| 计划 | 目标数 | 30 天内运行次数 | 每月 credits |
|---|---|---|---|
0 9 * * * | 5 | 30 | 450 |
0 * * * * | 1 | 720 | 2,160 |
*/15 * * * * | 1 | 2,880 | 8,640 |
每个监控都会给出自己的 estimated_credits_per_month,那是上限:这个数字假设每次运行都抓取并对比了所有目标。五个竞品页面每天早上查一次,是每月 450 credits,所以免费额度里一次性的 1,000 credits 够用前两个月。
它不会做什么
它只读你指给它的页面。它不持有联系人记录、企业属性数据或组织架构,所以它替代不了你做数据增强所依赖的那个数据库——它是位于你自有数据源之上的监控层。接入之前还有两个限制值得知道:robots.txt 永远被遵守且无法覆盖,因此被禁止的路径每次检查都会报告为 error 并带上 ROBOTS_DISALLOWED,而且从不计费;连续两次运行之间必须至少间隔五分钟。
如果你更希望让 Claude 读完并总结每一次 diff,而不是在 webhook 处理程序里做路由,那个环路是另一篇文章;track_changes 则是同一个原语,供你手动调用。
免费开始,赠送 1,000 credits,或者先从控制台创建第一个监控,读过真实的负载之后再动手写代码。
亲自试一试——无需注册
在 Playground 中运行可用的 30 个 CrawlForge 抓取与提取工具中的任意一个,然后免费开始,获取 1,000 credits。
1,000 免费 credits • 一次性 • 无需信用卡
标签
及时获取最新洞察
将教程、产品更新与 Web 抓取技巧直接发送到你的收件箱。
拒绝垃圾邮件,随时可取消订阅。