AI 竞品监测:每天自动跟踪 20 家竞品的官网、定价、招聘动态
AI 竞品监测:每天自动跟踪 20 家竞品的官网、定价、招聘动态
引言
竞品情报这件事,绝大多数团队还停在"月底手动刷一遍"的阶段。你打开竞品官网,看看有没有新功能;翻翻招聘页,猜猜对方在押注什么方向;再对比一下定价,判断要不要跟进调价。这一套下来,半天没了,而且信息到手时往往已经滞后两周。
问题不在于"看不看",而在于"看得不够快、不够全"。当竞品昨天刚上线一个新功能、今天调了价、明天挂出三个新岗位,你一周后才看到,决策节奏天然慢半拍。2026 年的竞争逻辑已经变了:不是谁做得好,而是谁知道得快。
这篇文章用 ClawBrain Agent 搭一套自动竞品监测系统——每天定时爬 20 家竞品的官网、定价页和招聘页,把变化自动 diff 出来,推送到团队群里。销售和产品每周一早上就能拿到上周的竞品情报,而不是月底看一份过期的报告。
架构设计:三个数据源,一条流水线
竞品监测的本质是"抓取 → 比对 → 推送"三个动作。难点不在抓取,而在比对——官网每天都在变,但大部分变化是无关紧要的样式调整,真正有价值的是新功能、定价调整、关键人变动和招聘信号。
这套系统的架构分三层:
| 层级 | 组件 | 职责 |
|---|---|---|
| 采集层 | Playwright + 定时任务 | 每天抓取 20 家竞品的官网、定价页、招聘页 |
| 比对层 | Git 快照 + LLM diff | 对比前后两次快照,用 LLM 提取有意义的变更 |
| 推送层 | Webhook | 把变化摘要推到钉钉 / 飞书 / Slack 群 |
采集层用 Playwright 是因为竞品官网普遍是前端渲染的 SPA,直接用 requests 拿到的是空壳 HTML,必须用无头浏览器执行 JS 后才能拿到真实内容。比对层则用 Git 做快照管理——每次抓取的内容存成一个 commit,跑 git diff 就能看到页面变化,再把 diff 喂给 LLM 判断"这次变化值不值得关注"。
采集层:Playwright 定时抓取
先解决"怎么抓"。下面这段脚本用 Playwright 无头浏览器抓取竞品官网首页,并把 HTML 存成带日期的快照文件:
import asyncio
from playwright.async_api import async_playwright
from datetime import datetime
COMPETITORS = [
{"name": "competitor_a", "url": "https://competitor-a.com"},
{"name": "competitor_b", "url": "https://competitor-b.com"},
# ... 最多 20 家
]
async def snapshot(url: str, name: str):
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
await page.goto(url, wait_until="networkidle", timeout=30000)
content = await page.content()
date = datetime.now().strftime("%Y%m%d")
with open(f"snapshots/{name}_{date}.html", "w", encoding="utf-8") as f:
f.write(content)
await browser.close()
async def main():
for comp in COMPETITORS:
try:
await snapshot(comp["url"], comp["name"])
except Exception as e:
print(f"抓取失败: {comp['name']} - {e}")
asyncio.run(main())
注意 wait_until="networkidle" 这个参数,它确保页面所有异步请求都完成后再取内容,否则抓到的可能是半渲染状态。用 crontab 或 GitHub Actions 定时跑这个脚本,每天凌晨 2 点执行一次即可。
比对层:Git diff + LLM 提炼
抓到的快照如果直接存文件,没法看出"变了什么"。这里的关键技巧是把快照目录做成 Git 仓库,每次抓取后自动 commit,然后用 git diff 拿到两个版本间的精确变化。
cd snapshots
git add .
git commit -m "daily snapshot $(date +%Y-%m-%d)"
git diff HEAD~1 -- competitor_a_20260901.html competitor_a_20260902.html
diff 输出往往是几百行 HTML 标签差异,直接看会崩溃。所以把 diff 文本喂给 LLM,让它提取"人类可读的变更摘要":
from openai import OpenAI
client = OpenAI()
def summarize_diff(diff_text: str, company: str) -> str:
prompt = f"""
以下是 {company} 官网的 HTML diff。请提取出值得关注的变化,分类输出:
1. 新功能/新产品线
2. 定价调整(列出前后价格)
3. 关键人变动(新增/离职的高管)
4. 其他重要变化
忽略样式、布局、文案微调等无关变化。用中文简洁输出。
"""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt + "\n\n" + diff_text[:8000]}]
)
return resp.choices[0].message.content
这里只截取 diff 前 8000 字符,避免 token 超限。对于招聘页,可以额外加一个规则:如果 diff 中出现新的岗位标题关键词(如"算法工程师""海外市场总监"),直接标记为高优先级信号。
推送层:变化分级 + 自动通知
采集和比对都跑通后,最后一步是把结果推给团队。这里的关键是"分级"——不是所有变化都值得打扰所有人。我按紧急程度分三档:
| 信号等级 | 触发条件 | 推送渠道 |
|---|---|---|
| 高 | 定价调整、核心功能上线 | 钉钉/飞书群 @所有人 |
| 中 | 新岗位、新页面、合作公告 | 群通知 |
| 低 | 文案微调、样式变化 | 不推送,记入周报 |
推送用 Webhook 即可,飞书和钉钉都支持自定义机器人。下面这段代码把 diff 摘要按等级分发到不同的 Webhook:
import requests
def push_to_feishu(webhook_url: str, title: str, content: str):
payload = {
"msg_type": "interactive",
"card": {
"header": {"title": {"tag": "plain_text", "content": title}},
"elements": [{"tag": "div", "text": {"tag": "lark_md", "content": content}}]
}
}
resp = requests.post(webhook_url, json=payload)
resp.raise_for_status()
def dispatch(summary: dict, company: str):
level = summary["level"] # "high" / "medium" / "low"
if level == "high":
push_to_feishu(HIGH_WEBHOOK, f"【竞品警报】{company}", summary["text"])
elif level == "medium":
push_to_feishu(MEDIUM_WEBHOOK, f"【竞品动态】{company}", summary["text"])
# low 级别不推送,写入周报文件
一条典型的推送长这样:
{
"msg_type": "text",
"content": {
"text": "【竞品警报】competitor_a 今日调整定价:\n- 入门版:$29/月 → $39/月(+34%)\n- 专业版:$99/月 → $99/月(不变)\n\n推测:对方可能在做产品分层,建议本周跟进评估。"
}
}
总结
这套系统的价值不在"爬得多快",而在"筛得多准"。抓取是体力活,diff 是技术活,真正值钱的是"让 LLM 判断什么值得看"——它把团队从每周半天的机械浏览里解放出来,让销售和产品把时间花在"应对"而不是"发现"上。
跑通之后你会发现,竞品监测从"月底回顾"变成了"每天早上的例行提醒",决策节奏从月度压缩到周度甚至天级。当竞品昨天刚调整策略、你今天就能看到时,你就不再是跟随者,而是有准备的一方。
这套系统本身就是一个典型的 Agent 任务:定时触发、自主执行、异常自愈。而 ClawBrain 正是为这类场景设计的——它是专为龙虾(OpenClaw)打造的智能决策引擎,具备任务闭环、自主规划、错误自愈能力。抓取失败自动重试、diff 超限自动截断、推送失败自动告警,这些细节 ClawBrain 都能帮你兜底,让龙虾真正能独立做事,而不是靠人盯着每一步。