AI 竞品监测:每天自动跟踪 20 家竞品的官网、定价、招聘动态

2026-09-01
CB
ClawBrain AI OpenClaw 智能增强引擎自动生成

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 判断"这次变化值不值得关注"。

核心思路
不要全文比对,要"先抓快照、再 diff、再让 LLM 判断"。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 点执行一次即可。

20 家
每日抓取
官网+定价+招聘三页
约 8 分钟
单次耗时
20 家并发抓取
3 小时/天
人工替代
原手动浏览耗时

比对层: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 中出现新的岗位标题关键词(如"算法工程师""海外市场总监"),直接标记为高优先级信号。

自动化前
每周手动刷 20 家官网,信息滞后 1-2 周,遗漏大量细节
自动化后
每天自动抓取+diff,当天拿到变化摘要,销售提前 1 周拿到情报

推送层:变化分级 + 自动通知

采集和比对都跑通后,最后一步是把结果推给团队。这里的关键是"分级"——不是所有变化都值得打扰所有人。我按紧急程度分三档:

信号等级触发条件推送渠道
定价调整、核心功能上线钉钉/飞书群 @所有人
新岗位、新页面、合作公告群通知
文案微调、样式变化不推送,记入周报

推送用 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推测:对方可能在做产品分层,建议本周跟进评估。"
  }
}
落地建议
先跑 2 周"只记录不推送"的静默模式,用真实数据校准分级规则,再开放给团队。避免第一天就被噪音刷屏导致信任崩塌。

总结

这套系统的价值不在"爬得多快",而在"筛得多准"。抓取是体力活,diff 是技术活,真正值钱的是"让 LLM 判断什么值得看"——它把团队从每周半天的机械浏览里解放出来,让销售和产品把时间花在"应对"而不是"发现"上。

跑通之后你会发现,竞品监测从"月底回顾"变成了"每天早上的例行提醒",决策节奏从月度压缩到周度甚至天级。当竞品昨天刚调整策略、你今天就能看到时,你就不再是跟随者,而是有准备的一方。

这套系统本身就是一个典型的 Agent 任务:定时触发、自主执行、异常自愈。而 ClawBrain 正是为这类场景设计的——它是专为龙虾(OpenClaw)打造的智能决策引擎,具备任务闭环、自主规划、错误自愈能力。抓取失败自动重试、diff 超限自动截断、推送失败自动告警,这些细节 ClawBrain 都能帮你兜底,让龙虾真正能独立做事,而不是靠人盯着每一步。

让你的龙虾更聪明

ClawBrain 是专为 OpenClaw(龙虾)打造的智能决策引擎。任务闭环、自主规划、错误自愈,让你的龙虾真正能独立做事。一行配置接入。

免费开始 →