先确认一件事:报告里的“页数”和你要查的“对象数量”通常不是同一种计数。去重的第一步不是删行,而是把每页记录还原成“查询键”,再判断哪些行属于同一个对象。若一个对象对应多个关键词、多个地域或多个设备,页数天然会大于对象数;若同一对象在同一条件下出现多行,才是真正需要处理的重复。
假设你有一个包含 200 个网址的清单,批量查询后报告显示 260 行、共 6 页。这里的 260 行不一定是重复:如果每个网址配了 2 个关键词,理论上就是 400 行;如果只配了部分关键词,行数会介于两者之间。判断方法很简单,先看报告里有没有“关键词”“地域”“设备”“查询时间”这类列。只要这些列的值不同,同一网址出现多行就是结构性展开,不是错误。
真正需要去重的情况是:所有条件列都相同,只有行号或页码不同。这种重复往往来自分页导出时的边界重叠,或者同一批任务被重复提交。把这两类分开,后面的动作才不会误删有效数据。
无论使用哪类批量查询工具,导出结果后先做一次字段核对。具体信息需要以你实际使用的工具为准,但通用做法是保留以下三类字段:
如果报告只有“序号”和“排名”两列,没有对象标识,那么页数不一致时无法可靠去重。此时应回到查询任务设置,确认导出时是否勾选了对象标识列;没有的话,先重新导出,而不是手工猜测对应关系。
假设你的清单有 200 个网址,每个网址查 3 个关键词,报告每页显示 100 行。理论行数是 600 行,即 6 页。此时“6 页”和“200 个对象”不一致是正常的,因为页数统计的是行,不是对象。去重后的对象数应该回到 200,而不是 600。
反过来,如果每个网址只查 1 个关键词,理论行数是 200 行、2 页,但报告显示 6 页,那就说明存在额外行。合理原因包括:同一任务被重复提交、分页导出时相邻页有重叠、或者对象清单本身包含重复网址。此时先检查清单是否去重,再检查任务是否重复,最后才处理报告内的重复行。
可执行的动作是:在导出文件里新增一列“查询键”,用对象标识加条件字段拼接而成,例如网址|关键词|地域|设备|时间点。然后对这一列做重复检查。结果会直接告诉你两件事:
这个动作的结果会直接影响下一步:如果重复集中在少数几个查询键上,说明是导出或提交环节的问题,修正任务设置即可;如果重复分散且查询键大量相同,说明对象清单本身需要先去重,否则下次查询还会出现同样情况。
去重完成后,把对象数、查询键数、报告行数三个数字列出来。如果对象数仍小于查询键数,说明一个对象确实对应多个条件,这是设计使然;如果查询键数小于报告行数,说明还有未纳入拼接的字段在制造差异,需要补进查询键。不要因为页数归零或行数减少就认定处理正确,那只说明删掉了行,不说明删对了行。把口径写在报告首页,让不同角色看到的是同一套计数规则,分歧才会变成可以核对的项目。