先给结论:报告页数大于实际对象数量时,不要直接删行,而要先判断多出来的“页”是什么。常见情况有三类——同一对象被不同URL形态重复记录、列表页或分页页被当成对象、筛选参数生成了额外记录。去重动作应当针对这三类分别处理:URL规范化、规则排除、参数归并。如果报告页数小于实际对象数量,则问题通常不是“多”,而是抓取或收录不完整,此时做去重没有意义。
站点管理工具的报告通常按“被发现的URL”计数,而你的业务清单按“对象”计数,两者天然不等。一个对象可能对应多个URL:带与不带末尾斜杠、带与不带www、大小写不同、带追踪参数、以及移动端与桌面端路径不同。反过来,一个URL也可能承载多个对象,例如分页列表。判断依据不是数量差多少,而是差在哪种形态上。
可执行的第一步动作:从报告里抽100条记录,按URL形态分组,统计每组占比。如果某一形态占比明显偏高,说明去重规则应优先处理该形态;如果形态分布均匀,说明差异更可能来自列表页混入,而不是URL重复。
当同一对象出现多条记录,且路径主体相同、仅协议、主机名、大小写或末尾符号不同,适合做规范化去重。动作是对报告中的URL统一处理:统一协议、统一主机名写法、去掉末尾斜杠、路径转小写、剔除已知追踪参数。处理后重新计数,再与业务清单比对。
这个动作的结果会直接影响下一步:如果规范化后数量接近实际对象数,说明差异主要是形态问题,可以按规范化规则建立长期过滤;如果数量仍然偏高,则说明还有列表页、筛选页或其他非对象页面混入,需要进入条件二的排除流程。
代价与例外:规范化会合并一些确实需要区分的URL,例如大小写敏感路径或带业务含义的参数。因此规则上线前应抽样验证,确认被合并的记录确实指向同一对象。对于参数承担筛选功能的站点,不能一律删除参数,否则会把不同对象误判为重复。
当报告里出现分类页、标签页、分页页、排序参数页时,这些“页”并不是你要统计的对象。此时逐条人工删除成本高且容易漏,应改用规则排除:按路径模式排除已知列表路径,按参数模式排除排序、筛选、会话类参数,按页面类型排除无独立对象的聚合页。
动作示例(假设场景):假设报告有1200条记录,业务清单有800个对象。抽样发现约300条记录路径含/page/或?sort=,另有约100条是同一对象的URL变体。先做规范化去掉100条,再用规则排除300条列表与筛选页,剩余约800条,与清单接近。这个结果说明两类规则基本覆盖了差异来源,可以把规则写入日常流程。
如果排除后数量低于实际对象数,说明规则过宽,误伤了真实对象页。此时应回退规则、缩小匹配范围,而不是继续加规则。这一步的判断依据是:排除动作应当只减少“非对象页”,不应减少“对象页”。
去重只能解决“报告偏多”。如果报告页数少于实际对象数量,去重不会让数字变多,问题在抓取或发现环节。合理解释包括:部分对象页未被链接到、被robots规则阻止、需要登录才能访问、或分页过深未被发现。这些原因与去重无关,继续做去重只会让缺口更大。
动作是反向核对:从业务清单中随机抽取一批对象,在报告中查找是否存在。若缺失集中在某一目录或某一层级,说明是发现路径问题;若缺失分散,说明可能是抓取预算或响应问题。这个结果决定下一步是调整入口链接、检查访问规则,还是重新安排抓取范围,而不是修改去重规则。
需要说明的是,报告数量归零或骤降不能单独证明去重规则正确,也可能是抓取中断、权限变更或工具配置改动造成的。判断时应结合抓取时间、状态码分布和入口链接变化一起看,避免把统计现象直接当成因果结论。
这套顺序的价值在于:它把“页数不一致”拆成可验证的小问题,每一步的结果都决定下一步走哪个分支。具体工具支持哪些规范化选项、参数过滤能力和规则语法,需要以你实际使用的工具说明为准,不同工具之间不能直接套用同一套配置。