先给结论:报告页数大于实际对象数量,通常不是“去重没做”,而是分页翻页时同一对象被重复计入,或者对象标识没有稳定到足以判断“同一个”。真正要解决的是先确定用什么字段判定重复,再决定在哪一步合并。如果只按显示文本去重,同词不同义、同义不同词都会误伤;如果只看页数,则会把翻页重复当成新增对象。
用百度相关搜索软件跑一批词时,常见的情况是:报告显示抓取了很多页,但按对象去重后数量明显少于页数,甚至连续几页都在重复同一批词。这里有两个合理解释,需要分开验证。
这两种解释的修复位置完全不同:前者要改翻页停止条件,后者要改字段归一化规则。先判断属于哪一种,再动手,否则容易在错误的一层反复调整。
能区分它们的关键证据是:把连续几页的原始记录按“页号+位置+文本”导出,观察重复出现的形态。
这里要注意:页数或抓取量归零、突然下降,不能单独证明去重做对了。它也可能是请求被限制、页面结构变化或对象本身变少造成的。判断去重是否有效,要看“去重后新增对象数”是否随页数增加而合理增长,而不是只看总数变小。
去重的核心是选定一个对象键。对百度相关搜索这类场景,建议按以下顺序确定:
这个动作的结果会直接影响下一步:如果归一化后对象数仍然远小于页数,说明翻页重复是主因,应优先调整翻页停止条件;如果归一化后对象数明显下降,说明之前的高估来自标识不稳定,应把归一化规则固定下来再重跑。
假设某次查询返回 8 页,每页 10 条记录,报告页数记为 80。按原始文本去重后得到 46 个对象。把文本做归一化(去空格、统一全半角)后,对象数降到 38。再检查连续页,发现第 3 页和第 4 页有 9 条完全相同,第 5 页和第 6 页有 7 条完全相同。此时可以判断:页数虚高主要来自翻页重复,归一化只解决了一部分。下一步应调整翻页逻辑,而不是继续加去重规则。
这个例子的数字只用于说明比较方法,不代表任何真实工具的实际表现。实际对象数量需要按你自己的数据重新统计。
如果常规去重都做了,页数和对象数仍对不上,集中检查一个容易遗漏的条件:对象是否跨批次、跨来源被重复计入。比如同一批词分多次运行,每次报告单独去重,但合并总表时没有再次按对象键合并。这种情况下,单份报告看起来正常,总表却偏高。
处理方式是:在合并总表时,用同一套归一化规则和对象键再做一次全局去重,并保留一个“首次出现批次”字段,便于回溯。这样既能压掉跨批次重复,又不会把不同批次的新增对象误删。具体工具是否支持该字段,需要按你实际使用的软件核对,不能默认所有相关搜索软件都提供相同能力。