判断采集是否遗漏,不能只看“总量对不对”,而要用同一批已知样本分别跑采集流程和人工核对流程,再比较两者差集。更具体地说,先构造一个可穷举的小范围页面集合,记录实际存在的条目,再让采集程序跑一遍,检查输出中缺少哪些条目、缺少的条目是否有共同特征。如果差集为空,说明当前规则在该样本下没有遗漏;如果差集非空,则说明存在遗漏,并且遗漏往往集中在分页、动态加载、筛选条件或去重环节。
很多人把“抓到的条数”当成判断依据,认为条数接近预期就没有遗漏。这个判断不成立,原因有三个。第一,预期总数本身可能来自第三方估算,而第三方估算、搜索引擎报告与站内统计口径不同,三者不能直接相减。第二,采集结果可能包含重复条目,去重后实际覆盖的条目反而更少。第三,采集可能抓到了大量低价值页面,却漏掉了某几个关键分类页下的条目。因此,条数只能作为参考,不能作为遗漏与否的结论。
要判断遗漏,最可靠的方法是先建立一个已知集合。可以按以下步骤执行:
如果遗漏集合为空,只能说明在该样本和该时间点下没有发现遗漏,不能推广到全站。如果遗漏集合非空,就可以根据遗漏特征调整规则,例如补充分页逻辑、处理动态加载、保留筛选参数。
遗漏通常出现在三个环节。第一是分页:采集只抓了第一页,或翻页规则在最后一页提前停止。第二是动态加载:页面初始返回的 HTML 里没有全部条目,需要触发滚动或接口请求才能拿到后续内容。第三是去重:程序把标题相同但实际不同的条目合并,或者把同一内容的不同链接误判为重复。
针对这三种可能,可以分别做检查。分页方面,手动翻到最后一页,确认采集输出是否包含最后一页的条目。动态加载方面,查看页面初始源码中是否包含目标条目,如果不包含,说明需要额外请求或渲染。去重方面,临时关闭去重逻辑再跑一次,对比关闭前后的条目数量与内容,判断是否有误删。
需要注意,一项遗漏现象可能有多个解释。例如某条目没被抓到,可能是分页没翻到,也可能是该条目在动态区域,还可能是被去重规则过滤。不要在没有逐项排查前就断言唯一原因。
排查过程中,要把推测和结论分开记录。推测是“可能因为分页没翻到”,结论是“关闭去重后该条目出现,说明去重规则是直接原因”。判断方法很简单:对每个怀疑点做一次对照实验,只改变一个条件,看遗漏条目是否恢复。如果改变条件后条目出现,该条件就是已定位的原因;如果改变后仍然缺失,说明还有其他因素。
适用条件是:样本范围可控、条目有唯一标识、采集流程可以重复运行。如果样本本身无法穷举,或者条目没有稳定标识,差集检查的可靠性会下降,此时应改为抽样核对,并明确抽样比例和判断边界。
下一步,选一个你熟悉的栏目,人工记录前两页的全部条目,用当前采集规则跑同一范围,把差集列出来。先确认遗漏是否存在,再根据遗漏条目的位置特征决定优先检查分页、动态加载还是去重。