先给结论:当报告页数大于实际对象数量时,问题通常不在“页数”本身,而在分页计数与去重键没有对齐。你要做的不是继续删行,而是先确认工具是按“URL 字符串”还是按“标准化对象”计数,再把去重键统一到后者。若两个口径混用,删多少行都会在下次导出时复原。
报告页数偏多,有两种常见成因,处理方式完全不同。
这两种情况的共同点是“看起来行数变多”,区别在于:翻页重复往往成片出现,同一页数据连续重复;对象重复则是零散分布,同一对象以不同形态各出现一次。
不要凭感觉判断,用三条可核对的证据区分。
这三条证据指向不同动作:翻页重复要改拉取方式,对象重复要改去重键。
假设你有一份报告,同一对象因结尾斜杠和查询参数不同出现多行。可以先把标识字段标准化,再按标准化结果去重。伪代码示例:
key = trim(lower(host + path))
这里先去掉协议差异、统一小写、去掉结尾斜杠,再去重。动作的结果是:唯一值数量会下降并趋近实际对象数。如果下降后仍明显偏多,说明还有未纳入标准化的差异,比如参数顺序或默认参数,需要继续补规则。这一步会直接决定下一步——是继续加规则,还是回头怀疑翻页重复。
如果证据偏向翻页重复,按这个顺序检查:
先修拉取逻辑,再去重,顺序反了会白费功夫:只去重不修拉取,下次导出依旧重复。
去重后数量下降,并不自动等于处理正确。数量归零或骤降也可能来自拉取失败、字段缺失或过滤条件过严。判断方法是对比去重前后的对象清单,抽查若干条,确认被删掉的是重复项而不是有效对象。只有抽查通过,才把去重规则固化为后续流程的一部分。
把去重键统一到能代表实际对象的字段,并先修拉取再合并,报告页数与实际对象数量才会稳定一致。