EveryInfra

EveryInfra Blog · BL-08

小红书数据分析别只看总量:笔记导出与历史快照怎么用

从创作者导出数据的论坛实践出发,解释小红书笔记累计值与区间值、快照日期、收藏增量、去重和缺失样本,避免把不同时间与不同笔记混在一起比较。

小红书笔记数据导出后,想知道“最近增加了多少收藏”,需要先确认字段是累计值还是区间值,再比较同一笔记、同一口径的两次观察。只有一张当前总量表,通常无法还原过去每一天的增长轨迹;把文件每天重复导入,也不会自动得到可信的历史数据。

DeanThompson 在 V2EX 分享的 xhs-trail 项目提供了一个具体切口:用自己从创作者后台导出的表格,观察笔记随时间的变化。它值得参考的是“把多次观察留下来”这个思路,不是把作者的功能清单换个名字搬过来。

本文核对截至 2026 年 9 月 5 日的原帖、作者 README 与相关工具文档,给出独立的数据处理方法。我们没有安装或审计该项目,也没有进入小红书登录后的后台;具体导出入口、字段和可用范围,以你获准访问的实际账户为准。

自己的后台数据,与公开笔记数据是两回事

公开笔记、评论文本和创作者统计报表可以帮助回答不同问题。前者适合研究公开讨论的内容,后者可能帮助本人复盘曝光、阅读或转化表现,但必须先看实际报表给了什么,不能从公开点赞数推算未取得的后台指标。

比如“用户在评论里最常问什么”和“哪篇笔记的收藏转化更好”不是同一个问题。前一个需要可回查的评论样本,后一个需要定义清楚的收藏与阅读口径。两份数据即使都带笔记链接,也不应该混成一张没有来源说明的表。

站内小红书批量评论指南讨论的是已知笔记清单上的评论获取,不是竞争账号的私有统计接口。选择数据之前,先把分析问题放到正确入口上,能少走很多弯路。

对于自己的账号,如果已经能取得合适的导出文件,就可以先把离线处理做正确,再决定是否需要其他获准的数据接入。文章不假设自动采集一定比手工导出更适合,也不把导出权限扩大成任意用途授权。

先分清统计日期、导出日期和导入日期

作者的 README特别提醒,应为默认文件名明确指定数据日期,避免把旧数据误归到今天。这个提醒对应一个常见问题:文件今天进入系统,不等于它反映的是今天的业务情况。

我们建议至少分开记录三种时间:报表覆盖的统计时点或区间、实际导出时间、进入分析系统的时间。必要时再保留时区。文件修改时间可以辅助排查文件操作,但不应直接成为统计日期的唯一依据。

假设周五补导入周三的报表,若程序按导入时间归档,周三就被误记为缺失,周五又出现两个互相冲突的快照。后续即使减法完全正确,趋势也已经画错了。

同一天多次导出还需要修订规则:保留不同观察时点,还是采用经过确认的最后一版?两种设计都可以,但不能由“哪个文件最后拖进页面”偶然决定。重复文件应被识别为重复导入,有变化的修订文件则应保留替换依据。

累计值可以相减,区间值不能随便相减

最先检查的不是公式,而是字段定义。如果一列表示截至某个时点的累计收藏数,同一笔记两次快照之间的差可以表示该区间观察到的净变化。如果一列本来就是“最近七天收藏”,拿今天减昨天,得到的是两个滚动窗口的差,不是今天新增收藏。

下面是合成算例,只用于说明方法。某笔记在周一 09:00 的累计收藏为 120,周三 09:00 为 165,差值是 45。你可以说这两个时点之间的累计值净增加 45,但不能把 45 全记在周三,也不能断言周二与周三各增加 22.5。

如果业务确实需要一个平均速率,可以单独标为“48 小时区间的日均净变化”,同时保留真实时间间隔。平均值是计算结果,不是两个从未实际观察到的日数据点。

负差也不能直接裁成零。先检查是否同一笔记、是否使用相同统计口径、是否导入了旧修订。确认仍有负差时,应保留为观察到的净减少或待解释变化,而不是编造一个确定的平台清洗原因。这里计算的是计数差,不是逐个用户行为的重建。

用笔记身份连接快照,不用标题连接历史

标题会修改,同系列文章也可能标题相近。优先使用有权取得且已经确认的笔记标识,把它作为跨快照关联依据;多账号处理中,还应保留账号范围。仅凭“标题加发布时间”的候选匹配,遇到冲突时需要核对,不能悄悄当成永久主键。

导入前应检查同一批数据是否出现重复键。一个笔记在左表出现两次、右表也出现两次,普通关联可能产生四行,看起来就像增长和样本都翻倍了。pandas 的 merge 文档提供 validate="one_to_one" 来检查双侧关联键的唯一性,indicator 则可以区分只出现在一侧的记录。

即使不用 pandas,这个检查也值得保留:先确认一行代表什么,再做关联。不要在看到重复行之后简单取最大值;重复可能来自文件重导,也可能来自账号或统计口径混用,两者的处理方式不同。

若使用 SQLite 存快照,官方 UPSERT 说明表明它依赖唯一性约束处理冲突。数据库能防止重复写入,却不知道你选错了快照日期。应先确定账号、笔记、统计时点和口径的唯一规则,再决定重复导入是忽略、拒绝还是作为有记录的修订。

缺一张表,不代表那天增长为零

一篇笔记没有出现在本次导出中,可能是筛选范围不同、文件不完整或匹配失败。仅凭缺席,不能认定笔记被删除,也不能把它的累计指标重置为零。

比较两次快照时,建议把记录分成两边都存在、只在前一次存在、只在后一次存在。只有身份和口径都确认一致的共同记录,才进入直接差值比较。新出现的笔记如果没有可靠前值,就单独展示当前观察,不默认它此前为零。

报表也应公开这个边界。例如“本次比较覆盖两份文件中可匹配的笔记”,比无条件写成“本周全账号增长”更准确。若要计算全账号汇总,需要确认导出范围和缺失处理,而不是把所有能减的行直接相加。

站内多平台口碑监控蓝图讨论了类似的原则:采集缺口不能变成业务上的零值。无论数据来自接口还是 Excel,这个原则都一样。

比较内容表现,还要给笔记相同的观察机会

一篇发布 30 天的笔记,与一篇昨天发布的笔记,累计值不同并不说明内容质量不同。可以先按发布后的相同观察窗口比较,例如各自发布后某段等长时间内的可得变化;没有足够快照的笔记,标为暂不可比。

比较收藏率时,也要说明分母是阅读、观看还是曝光,并确认分子分母来自同一口径。若要得到整个样本的合并比率,通常应先分别加总分子分母再相除;直接平均每篇比率,会让少量阅读的小笔记与大量阅读的笔记拥有同样权重。两种统计回答不同问题,不能都叫同一个“平均收藏率”。

最后,把结果变成下一次内容决策的线索,而不是算法归因。某篇旧笔记持续有可观察增量,可以提示你复查其主题与评论需求,但仅凭快照无法证明它获得了哪种推荐机制,也不能据此保证下一篇重复同样主题会成功。

小红书数据分析真正需要的,不只是更大的表格,而是能解释每个数字来自哪个对象、哪个时间和什么口径。先把日期、身份、增量和缺失处理做好,哪怕只有少量获准导出,也比一份无法还原计算过程的“增长榜单”更有用。