先给结论:页数多于对象数,通常不是“工具算错”,而是查询单位与统计单位不一致。权重查询常按“条目”返回,而一个实际对象(一个域名、一个栏目、一个页面)可能被拆成多条记录。去重的第一步不是删行,而是先确定你要统计的是哪一层对象,再决定按什么字段合并。
报告页数偏多有两类原因,处理方式完全不同。
www、参数不同但内容相同。这类要先归一化,再合并。判断依据:如果两行的主标识完全相同,属于重复行;如果主标识不同但指向同一内容,属于重复对象。前者是格式问题,后者是口径问题,混在一起处理会误删有效数据。
当每个实际对象都有稳定标识(完整的规范化地址、唯一编号),去重逻辑最简单。
实际动作:把归一化后的地址作为唯一键排序,检查相邻行是否重复。这一步的结果会直接决定下一步——如果归一化后仍有多行指向同一对象,说明报告里混入了不同来源或不同时间的记录,需要先确认保留哪一条,而不是直接删。
有些权重查询报告返回的是“条目”而非“对象”,一个实际对象可能对应多条记录。这时不能按行去重,必须先定义统计单位。
假设一份报告有 120 行,但实际只有 80 个页面。差异可能来自:同一页面被不同栏目引用、同一主体出现在多个分组、同一地址的多个参数版本。此时正确的做法是:
这里的取舍是:保留最高值会高估整体,保留最新值会受时间影响。选择依据是报告用途——用于盘点对象总数时按对象去重;用于观察单个对象表现时按对象保留一条代表记录。
个别样本去重成功,不代表批量处理同样可靠。常见例外有三类:
遇到这些例外,不要强行套用同一套规则。先缩小范围,确认这批数据的对象定义是否一致,再决定是否继续自动去重。
假设某次权重查询报告返回 100 行,实际对象为 70 个。按规范化地址去重后剩 85 行,说明仍有 15 行指向同一对象但地址写法不同。下一步不是继续删,而是检查这 15 行的差异字段:如果差异只在参数或来源,可以合并;如果差异在主体,说明对象定义本身有歧义,需要先统一口径。这个例子的数字仅用于说明比较方法,不代表任何工具的实际数据。
去重完成不等于结束。至少核对两项:合并后的对象数是否与已知清单一致;被合并的记录是否保留了可追溯的原始标识。如果合并后数量仍多于预期,优先怀疑对象定义不一致,而不是继续删行。报告页数、抓取量或某项统计归零,都不能单独证明去重正确——它们也可能来自查询范围变化、参数调整或数据延迟,需要结合对象清单一起判断。
最终判断标准只有一个:去重后的每一行,是否对应一个你真正想统计的实际对象。