结论是有条件的:当参数组合在理论上无限增长时,不能靠“让百度自己选”来定义有效地址集合,而要由站点主动声明一个有限、可枚举、且与内容一一对应的规范集合;其余组合必须能通过规则被判定为无效或等价。这个结论只在“参数不改变页面主体内容”的前提下成立。如果每个参数组合都确实对应独立内容,那么任何收缩动作都会误伤,此时正确做法是保留并分别提供入口,而不是继续做归一。
定义有效地址集合的第一步不是写规则,而是抽样核对。从日志或站点地图中取一批带参数的地址,逐个打开,记录三件事:主体内容是否变化、标题与摘要是否变化、页面是否只是同一内容的排序或筛选视图。
这一步的实际动作是产出一张对照表,列出参数名、取值来源、是否影响内容。它的结果直接决定下一步:影响内容的参数进入保留清单,不影响内容的参数进入归一清单。若跳过这一步直接写规则,后面所有判断都建立在猜测上。
“无限增长”通常来自多个参数自由组合,例如颜色、尺寸、排序、页码各自取值后相乘。判断能否定义有效集合,关键看这个乘积是否可枚举,而不是看它现在有多少条。
可枚举意味着:每个参数有明确取值域,取值域有限,且组合后能对应到真实存在的内容。假设某站点有 8 种颜色和 6 种尺寸,但并非所有组合都有货,那么有效地址集合应以实际存在的组合为准,而不是 8×6 的理论值。这个例子只用于说明比较方法:理论组合数不能当作有效地址数。
当取值域本身开放,例如用户可输入任意关键词生成列表页,组合就不可枚举。此时应把这类地址排除在有效集合之外,只保留由站点自己维护的固定入口。判断依据是取值域是否由站点控制,而不是地址当前是否能打开。
上面的结论在一种情况下不成立:参数组合虽然看起来只是筛选,但每个组合都对应了不同的、用户会主动搜索的实体。例如同一件商品的不同规格,各自有独立库存、独立价格、独立评价。如果把这些地址全部归一到其中一个,被归一地址所承载的信息就失去了可访问入口。
识别方法是看该地址是否有独立的外部指向和独立的需求。若存在外部链接或用户直接搜索该组合,且落地后需要看到该组合特有的信息,就不应把它当作重复地址处理。这个反例说明:归一规则必须能解释“为什么这个组合可以被另一个地址代表”,解释不了就不能合并。
定义完集合后,需要一个能被复核的动作序列,而不是只停留在文档里。
执行后观察抓取请求的分布变化。如果保留集合的抓取比例上升、无效组合的请求下降,说明规则被识别;如果两者都没有变化,先检查规则是否真的生效,而不是直接判定规则无效。请求量变化本身也不能单独证明处理正确,它还可能来自抓取预算调整或外部链接变动。
先完成参数对照表,再据此写出保留清单与归一清单,然后只对归一清单执行规范标记和服务端状态处理。执行后回到对照表复核:被归一地址所承载的信息,是否仍能从代表地址完整获得。如果答案是否定的,把该地址移回保留清单,重新定义集合边界。整个过程的判断依据始终是内容是否等价,而不是地址数量是否变少。