先给结论:报告里的“页数”通常不是“外链对象数”,去重不能只按行数或URL字符串做,而要先确定你统计的对象是“链接”“来源页面”还是“来源域名”,再决定用什么键去重。样本小时三者差距不明显,规模化后差距会被放大,所以照搬小样本的去重规则往往失效。
外链建设工具的报告页数,通常来自抓取或索引到的记录条数,一条记录可能是一个链接、一个来源页面,也可能是一个来源域名下的聚合行。这三种口径在样本只有几十条时经常重合,因为一个页面往往只放一个链接、一个域名往往只放一个页面。规模上去以后,同一域名会有多个页面、同一页面会有多个链接,页数就会明显大于实际对象数。
所以第一步不是急着写去重脚本,而是打开报告字段,确认有没有来源URL、目标URL、锚文本、链接属性这些列。如果只有“来源”一列,要判断它是域名还是完整URL;如果两者混在一列,去重前必须先拆分,否则会把example.com和example.com/page当成两个对象。
报告页数虚高,常见两种解释,处理方式完全不同。
区分两者的证据很直接:看重复行的来源URL是否只差参数或斜杠。如果规范化后完全一致,属于解释一;如果规范化后仍是不同页面,只是同域名,属于解释二。这个判断动作会决定下一步是清洗字符串,还是改变统计单位。
去重的关键是选对主键,主键取决于你要回答的问题。
假设一份报告有500行,规范化来源URL后剩320个唯一页面,聚合到域名后剩90个唯一域名。这三个数字都成立,只是回答的问题不同。如果你的目标是判断“有多少个站点提到目标”,就该用90;如果目标是“有多少个页面放了链接”,就用320。用错主键,结论会偏。
小样本能用的简化规则,规模化后要重新验证。常见边界有三个:
这些规则一旦确定,就要固化成可重复执行的步骤,而不是每次看报告时临时决定。否则不同批次的数据无法比较,去重结果也无法复查。
建议按这个顺序处理:先规范化URL,再按选定主键去重,最后记录去重前后的数量差。差值是判断口径是否混算的重要线索:差值很小,说明报告口径接近你的统计单位;差值很大,说明要么存在大量重复,要么报告按更细的单位计数。
这个顺序的价值在于,它把“页数不一致”从一个需要争论的问题,变成一个可以用证据判断的分支。先确认对象,再选主键,最后才谈去重规则,这样规模化后的例外才有依据可循。