适用人群
用带日期的笔记跟踪其他产品发布了什么
存成书签的竞品调研,会慢慢退化成一串搜不了的链接。剪藏成 Markdown 之后,它就成了一个语料库:可以用 grep 搜索,可以和上季度的采集做 diff,也可以连同日期一起引用到决策文档里。
慢慢失去用处的调研
名为“竞品”的书签文件夹里有九十条。一半跳转到改版后的营销页面,四分之一需要登录,而团队里已经没人还有那个账号,没有一条能告诉你这个网页三月时写的是什么。有人问竞争对手是在你之前还是之后上线了某个功能,答案就在一个早已被重写的网页上。
截图也救不了它。截图没法搜索,除了文件时间戳之外没有任何日期;把一张截图贴进决策文档,只会引来一个问题:网页其余部分写了什么?在评审中站得住的是文字,带着网页自己声明的日期,放在一个六个月后仍然能 grep 的文件里。
而且信号分散在长得完全不一样的网页上。更新日志说发布了什么,文档说它实际能做什么,定价页说它面向谁,状态页说它多久出一次故障,论坛帖子说客户对这四样怎么看。没有任何东西替你盯着它们:你什么时候看,就是什么时候看;当天没采集下来的内容就这么没了,因为这些网页都不保留访客能读到的历史。
语料库能给你什么
- 发布日期从网页读取,更新日志条目保留真实的时间,而不是你发现它的那一天。
- 按网站规则自动把每个竞品放进各自的文件夹。
- 定价和限额表格保持完整:技术语料中的 15 个表格保留了 12 个,参与比较的引擎各为 7 个。
- 每条笔记里都有来源网址,文档中的说法都能追溯到一个网页和一个日期。
- 文件放在你自己的 vault 里,就在它们所支撑的决策旁边,可以用 grep 或编辑器搜索。
- 下个季度再剪藏同一个网页,diff 会准确显示改了什么。
- 论坛帖子保留嵌套结构和每条评论的得分,客户在这里说的话,更新日志永远不会说。
- 扩展程序不上传任何关于网页的内容,所以跟踪竞品不会留下别的痕迹,只有浏览器本来就产生的那次访问。
--- title: "基础库更新日志 | 微信开放文档" source: "https://developers.weixin.qq.com/miniprogram/dev/framework/release/" extraction: "dom" --- ### v3.17.3 (2026-08-20) - U 更新 框架 小游戏开放 getScenePerformanceManager 能力 - U 更新 框架 小游戏框架支持 WebGPU ,可通过 wx.getGPU() 获取(等价于 navigator.gpu) ### v3.17.2 (2026-07-17) - A 新增 API 跳转信贷代扣接口 wx.requestAutomaticRepayment - A 新增 API wx.saveMediaToPhotosAlbum 混合保存图片视频
搭建竞品语料库
整套设置就是按网站规则,加上日历里一个固定的时间段。两样都不高明,合在一起就是全部方法。
- 从扩展程序图标打开设置,把保存位置指向团队都能读取的文件夹:
research/competitors,最好放在代码仓库里,历史记录就不用另外操心。 - 为每个竞品添加一条按网站规则:它的域名对应它自己的子文件夹。此后什么都不用手动归档,而这正是语料库能熬过忙碌季度的唯一原因。
- 把点击图标的动作设为“保存到文件夹”。采集的成本必须低于决定要不要采集的成本,否则你只会采集那些早就知道重要的网页。
- 把文件名模板设为
{date}-{title},这样同一份更新日志的四次采集,会在竞品文件夹里按时间顺序排列。 - 在 frontmatter 里开启
source和date。发布日期是网页自己的日期,有了它,你才能说对手是三月发布的这个功能,而不是你三月才注意到。 - 把图片设为跳过。营销截图是竞品网页里体积最大、用处最小的部分,而且每次改版,图片网址都会变。
- 在日历里设一个固定的时间段,每次采集同样的五个网页:更新日志、定价页、重叠功能的文档页、状态页,以及当前正在讨论它们的帖子。
长期跟踪的设置
这里的每一项都是为第二次采集优化的,而不是第一次。每个网页只采集过一次的语料库,不过是多了几个步骤的书签列表。
| 设置 | 值 | 为什么这样设 |
|---|---|---|
| 点击图标 | 保存到文件夹 | 采集的成本必须低于决定要不要采集的成本 |
| 保存位置 | 共享的 `research/competitors` 文件夹 | 只有一个人能看的语料库,只是个人爱好 |
| 按网站规则 | 每个竞品一个子文件夹 | 手动归档是忙碌季度里最先被放弃的一步 |
| 文件名模板 | `{date}-{title}` | 同一份更新日志的四次采集,不借助任何工具就按时间排好 |
| Frontmatter | 开启 `source` 和 `date` | 决策文档能写明对手何时发布,而不是你何时注意到 |
| 图片 | 跳过 | 营销截图是网页里最占地方、最没法引用的部分 |
| 节奏 | 固定时间段,同样的五个网页 | 交付物是 diff,而 diff 需要两次采集 |
--- title: "速率限制" source: "https://example-api.com/docs/limits" date: "2026-02-19" extraction: "dom" --- | 套餐 | 每分钟请求数 | 突发上限 | 数据保留 | | ------ | ------------ | -------- | -------- | | 入门版 | 60 | 120 | 7 天 | | 团队版 | 600 | 1200 | 30 天 | | 企业版 | 协商确定 | – | 365 天 | 限额按组织计算,而不是按密钥计算。
它能回答的三个问题
谁先发布的
对手宣布了一个功能,而你们从春天起就在做内测,会议室里对事情的先后各执一词。你采集的对方发布说明带着网页自己声明的日期,所以先后顺序靠文件确定,而不是靠记忆。
关键在于网页自己的日期。文件时间戳说明你什么时候剪藏;一条写明 12 月 11 日的更新日志条目说明他们什么时候发布。这是两个不同的事实,而截图会把它们混成一个。
没人宣布的价格调整
你每个季度采集一次某个竞品的限额页面。在两次采集之间,入门套餐的突发上限减半,最高套餐的数据保留期变成三倍,没有博客文章,也没有更新日志条目:网页只是换了一种说法。
diff 只有三行,却改变了一个定位论点。两次采集单独看都平平无奇,这也正是为什么这个方法只有在采集足够便宜时才有效:便宜到你在知道什么重要之前,就已经顺手采集了。
经得起评审的决策文档论据
建议书引用了对手文档中写明的速率限制。引文来自一个文件,上面有来源网址和日期,想核实的评审人直接打开文件,不必再让你把网页找出来。
完全由营销模块搭成的网页是值得了解的例外:这类网页往往没有文章正文,扩展程序会报告“没有文章”,而不是交给你一页链接。遇到这种情况,文档页面通常以可以引用的形式写着同样的说法。
和常见的竞品调研方式比一比
团队通常会做前两种,偶尔为第三种付费,而且哪一种都很少坚持下来。下面列的代价,正是难以坚持的原因。
| 现在的做法 | 得到什么 | 代价是什么 |
|---|---|---|
| 书签文件夹 | 一份去哪里看的清单 | 每一条打开的都是今天的网页;一年之内有一半会跳转 |
| 共享盘里的截图 | 网页当时的样子 | 搜不了,除了文件本身没有日期,也没法引用其中一句话 |
| 网页监控服务 | 网页变化时发提醒 | 要订阅,而且只盯你事先想到的那些网页 |
| 手动敲进文档的笔记 | 你对网页的理解 | 是转述,不是证据;六个月后没人分得清哪句是哪句 |
| Clean Web Clipper | 可以 grep、可以 diff 的带日期文本文件 | 没有监控,没有提醒:你看的时候才采集,它不会替你盯着 |
竞品网页剪藏不下来时
定价页为什么返回了“没有文章”?
现在的营销页面常常完全由设计组件搭成,根本没有文章正文,提取出的文字里超过约四分之一落在链接文字和按钮文字上。扩展程序会拒绝,而不是交给你一页碎片。文档页或条款页通常以正文形式写着同样的限额,这些网页可以正常剪藏。
为什么只剪到了最新的发布说明?
更新日志通常分页,或者把较早的条目藏在“显示更多”后面。扩展程序读取的是你剪藏那一刻的 DOM,还没加载出来的内容并不存在,无从采集。先把列表展开,或者把归档的每一页分别剪藏,这些文件可以并排放在竞品的文件夹里。
为什么各个条目没有日期?
date 字段只保存整个网页的一个日期,取自网页自己的元数据,而不是每个条目各一个日期。如果更新日志把日期写在每个条目的正文里,它会作为正文带过来,照样可读。如果网站根本没有给出日期,这个字段就留空,而不是填上今天;在某些语料里,这种情况很常见,并不罕见。
我需要知道它什么时候变的,而不只是知道变了
这就是这个方法实实在在的局限:没有监控,没有提醒,也没有定时重新采集,所以记录的精度就是你采集的频率。每季度采集一次的网页,只能告诉你变化发生在某个季度之内。如果时间点本身就是决策依据,该用的是监控服务,而不是它。
它不会做什么
它不替你盯网页:没有监控,没有提醒,也没有定时重新采集,你看的时候才剪藏。没有爬虫,也没有批量模式,所以文档站只能一页一页地剪藏。完全由设计模块搭成、没有文章正文的营销页面,可能会被报告为“没有文章”,因为扩展程序宁愿直说,也不交给你一页链接。它也不替你做 diff,它生成的是任何 diff 工具都能比较的文件。