先给结论:报告页数和实际对象数量不一致,通常不是“谁多谁少”的问题,而是去重键选错了。小样本时按页面标题或URL去重往往够用,规模化后一旦出现参数页、分页、多语言目录或同一对象被多次抓取,就必须改用稳定标识去重;如果稳定标识本身缺失,则应先补对象主键,而不是继续在报告层反复筛选。
报告页数指工具输出中可被计数的行或记录数,实际对象数量指你真正要分析的目标数量。二者不一致时,先做一次最小分类,不要急着删行。
判断依据可以看三个字段:对象ID是否存在且唯一、URL是否只对应一个对象、标题或名称是否在不同行中重复出现。若对象ID存在,优先以它为准;若不存在,才退回到URL加规范化规则。
当数据源提供商品ID、文章ID、门店编号或类似字段时,直接以该字段作为去重键。动作是:在导出结果中保留主键、URL、标题和抓取时间,按主键分组,每组保留一条代表记录。代表记录的选择规则要事先固定,例如保留最近一次抓取、保留状态为可访问的记录,或保留URL最短且不含跟踪参数的记录。
这样做的结果是:报告页数会下降,但下降的部分是可解释的重复,而不是目标对象被误删。下一步应抽查被合并掉的记录,确认它们确实指向同一对象,再进入后续分析。
若数据源只有URL和标题,不能直接按标题去重,因为不同对象可能同名。此时应先用URL规范化构造临时主键:去掉跟踪参数、统一大小写、去掉末尾斜杠差异、把分页参数单独标记。然后把规范化URL与标题组合成候选键,再人工或规则确认哪些属于同一对象。
这样做的结果是:去重后仍可能保留少量重复,但不会把同名不同对象误合并。下一步应把无法确认的记录单独列出,而不是强行删除。
小样本时,一个对象通常只有一个URL,按URL去重就能对上。规模化后,以下情况会让报告页数明显多于实际对象数量:
这些例外的共同点是:去重键必须与你的分析目标一致。目标不同,去重结果就不同,不存在一个通用答案。
假设某报告导出1000行,实际目标对象为800个。检查后发现:200行是同一批URL带不同跟踪参数,另有若干行是分页页。此时若直接按URL去重,可能只去掉部分参数差异,分页页仍保留,报告页数仍高于800。正确动作是:先按“对象ID”分组;没有对象ID时,按“规范化URL+对象名称”分组,并把分页页单独标记为容器页,不计入对象数量。结果是报告页数接近800,且被合并的记录有明确规则可复查。下一步应抽样核对被合并记录,确认没有把不同对象误判为同一对象。
去重不是终点,验证才是。建议做三步:
需要提醒的是,报告页数、抓取量或某项统计归零,并不能单独证明去重正确。它也可能意味着抓取失败、筛选条件过严或数据源本身不完整。只有结合保留日志和抽样反查,才能判断去重是否真的把重复对象合并干净,而不是把有效对象误删。