先给结论:当查询对象从纯关键词变成网址、页面或一批链接时,输入规范要改的不是“多填一个字段”,而是先确定工具把对象当作哪一类实体处理。如果工具按关键词匹配,网址通常只是筛选条件;如果按页面抓取,网址就是主键,关键词反而变成过滤维度。判断依据是输出结果的行数是否随网址数量线性增长,以及同一批网址在不同关键词下是否返回相同行数。
条件一:工具以关键词为入口,网址只用于限定范围。此时规范重点是关键词写法,包括同义变体、词序、是否带修饰词,网址字段可以留空或作为范围过滤。条件二:工具以网址为入口,关键词只用于归类。此时规范重点是网址粒度,必须决定提交首页、栏目页还是具体内容页,以及是否要统一协议、斜杠、参数和大小写。
判断方法很直接:取三条已知网址和两个已知关键词做一次小规模试跑。如果结果行数等于网址数乘以关键词数,说明网址是主键,关键词是维度;如果结果行数只等于关键词数,说明网址只是过滤条件。这个判断会决定你下一步改哪一层规范,而不是同时改两层导致无法归因。
网址作为输入对象时,最常见的遗漏条件是粒度不一致。首页、栏目页和内容页混在一批里,工具返回的行数和指标含义会不一样,后续比较就失去意义。实施动作是先按路径深度分组,同一组内只保留同一层级,再提交查询。结果如何影响下一步:如果分组后某些组的返回行数明显偏少,说明该层级不是工具默认处理的对象,需要回到上一层或下一层重新分组,而不是继续追加关键词。
另一个需要固定的条件是参数处理。带跟踪参数、会话参数或排序参数的网址,是否要去掉后再提交,取决于工具把参数视为同一页的不同版本,还是不同对象。可以先保留原样跑一次,再去掉参数跑一次,比较两次返回的行数和对象标识是否一致。如果一致,说明参数不影响对象识别,可以保留;如果不一致,就需要在输入规范里明确去掉哪些参数。
批量提交网址时,分隔符、换行和空格的处理会直接影响对象数量。规范里应明确三项:每条记录占一行,行内不出现分隔符以外的空白,重复网址先去重再提交。去重的依据是规范化后的网址,而不是原始字符串,否则同一页面的不同写法会被当成两个对象。
假设一批输入有 10 条记录,其中 2 条是同一页面的不同参数写法。如果不去重,返回 10 行;去重后返回 9 行。这个差异本身不能证明去重正确,只能说明工具按原始字符串计数。要确认对象识别规则,还需要看这 9 行里是否包含那两条记录对应的同一对象标识。如果没有对象标识字段,就退回单条提交,用两条网址分别查询,比较返回内容是否指向同一页面。
网址作为主键时,关键词字段的作用从“查询对象”变成“归类标签”。规范要改的是:关键词不再需要覆盖所有变体,而是选择能区分页面的少数标签。选择依据是同一批网址在不同标签下是否返回不同分组。如果两个标签返回完全相同的分组,说明它们在该工具内被合并处理,保留一个即可。
例外情况是工具同时支持关键词和网址作为联合条件。此时输入规范要明确哪个字段是必填、哪个是可选,以及联合条件的匹配关系是“与”还是“或”。如果不确定,先用一条网址加两个关键词试跑,观察返回行数是 1 行、2 行还是 0 行,再据此决定是否在规范里固定联合条件。
验证动作是固定一批已知对象,分别用旧规范和新规范各跑一次,比较三次结果:对象总数、分组数、以及每组内对象标识是否稳定。如果对象总数一致但分组数变化,说明关键词字段的写法影响归类,不影响对象识别;如果对象总数变化,说明网址粒度或去重规则改变了对象集合。两种变化对应不同的下一步:前者调整关键词标签,后者回到网址规范化。
需要说明的例外是,返回行数减少或某项统计归零,不能单独证明新规范正确。合理解释还包括工具对某些层级不处理、参数被过滤、或者查询被限流。要排除这些解释,需要换一条已知会被处理的网址做对照,观察它是否返回预期行数。对照通过后,再把新规范应用到完整批次。