先给结论:报告页数偏多,通常不是工具算错,而是“一行代表一个对象”这个前提在你的数据里不成立。去重的正确做法不是删行,而是先确定你认可的“对象”由哪些字段唯一决定,再让报告按这个口径归并。下面以一个你手头已有的导出文件为对象,走一遍可执行流程。
拉出报告后,先别急着去重。抽十行左右,逐列比对,看多出来的行属于哪种情况:
判断依据是:如果两行在“业务上指同一个东西”的字段上完全一致,只是附加维度不同,那它属于第一类,删掉会丢信息;如果差异只出现在链接写法上,属于第二类,应该归并而不是删除。
去重的前提是先定义唯一键。对大多数页面级报告,可以按以下优先级选:
一个假设例子:假设你导出 500 行,其中 80 行的链接只差一个 ?from= 参数。若直接用原始链接当唯一键,会得到 500 个对象;规范化后可能只剩 420 个。这个差值不是工具错了,而是唯一键选错了。这一步的结果直接决定下一步:如果规范化后数量仍明显大于你预期的对象数,说明还存在跨链接的内容重复,需要进入内容层面的比对。
直接对全表去重风险高,容易把维度信息一起删掉。更稳的做法是两步:
第一步,按唯一键归并同对象的多行。把日期、设备等维度列保留为附加字段,而不是让它们各占一行。归并后得到的行数,才是你真正的对象数量。
第二步,对归并结果做内容级比对。如果两个不同链接的标题、正文摘要高度接近,标记为疑似同内容,人工确认后再合并。这一步不要全自动,因为栏目页和详情页可能标题相似但用途不同。
动作与结果的关系很直接:第一步做完,你得到的是“对象清单”;第二步做完,你得到的才是“去重后清单”。如果跳过第一步直接做内容比对,会把同一对象的多个维度误判成重复内容。
个别样本上,按链接规范化去重往往够用。但样本量上来后,例外会集中出现在几类页面上:
所以边界是:链接规范化适合页面级统计,不适合内容级统计。如果你的目的是统计“有多少篇独立内容”,就必须在规范化之后再加一层内容指纹比对;如果只是统计“有多少个可访问页面”,规范化通常已经足够。把这两种目的混在一个去重规则里,是规模化后数字对不上的常见原因。
一次处理完,把规则写进你的检查步骤,下次直接套用:
需要提醒的是,不同工具对“页数”的默认口径可能不同,有的按 URL 计数,有的按抓取记录计数,具体口径需要在你所用工具的说明里核对,不要默认它们一致。当你发现报告页数下降,也不能单独据此判断处理正确,因为参数过滤、抓取失败或分页截断都会造成同样的下降,需要结合原始记录一起看。把对象定义和唯一键固定下来之后,页数不一致就不再是每次都要重新争论的问题,而是一个可以按规则复现的结果。