扫描中断后,判断覆盖范围最可靠的办法不是看进度条,而是看工具在中断前是否已经把“已处理对象清单”落盘。如果只有进度百分比,这个数字通常只能说明它读到过多少,不能说明它完成了多少;此时应把本次结果当作部分样本,先核对已覆盖的URL或文本块,再决定是续扫、缩小范围重扫,还是直接放弃本次数据。
全站扫描一般包含抓取、解析、计算、写入四个阶段。中断可能发生在任何一步,进度条往往只反映抓取或解析的推进量。判断覆盖范围时,优先找工具输出的三类痕迹:
如果工具只给了一个百分比,没有清单,就要用站点自身的可枚举对象数做交叉验证。例如站点地图声明有2000个URL,扫描报告显示“已抓取1200”,这只能说明抓取阶段推进到约六成,解析和写入是否同步完成需要另找证据。这些数字只是说明比较方法的假设,不代表任何真实项目的规模。
要判断覆盖范围,先确定分母。常见分母来源包括站点地图条目数、CMS后台已发布内容数、日志中近期被访问的URL数。三者往往不一致,选择哪一个取决于你的目的:
确定分母后,把中断前的已处理清单与之求交集和差集。差集中的对象就是本次未覆盖部分。注意:某个URL出现在清单里,不等于它的关键词密度计算结果一定可用,还要看该条记录是否带有完成标记。缺少完成标记的记录应视为未覆盖。
覆盖范围判断清楚后,处理方式取决于中断原因和剩余对象的性质,而不是取决于已经跑了多久。
工具支持从断点继续,且已处理清单可被复用,中断原因是临时性的(如网络波动、会话超时)。此时续扫的增量成本低,已覆盖部分不必重算。动作是:先导出当前清单并备份,再触发续扫;续扫完成后用总数减去备份清单数,核对新增对象是否等于预期剩余量。如果新增量明显小于预期,说明有对象被静默跳过,需要回到错误记录里找原因。
中断原因与对象本身有关,例如某些大体量页面反复超时,或者工具对某种内容类型处理不稳定。此时全站重扫大概率会在同一位置再次中断。更实际的做法是按目录、内容类型或发布时间切分,分批扫描。每批完成后立即导出,逐批累积覆盖。代价是总耗时可能更长,但每批结果都是完整的,可以直接进入保留、改写或退出的判断。
已覆盖部分恰好集中在你不打算保留的区域,而真正需要决策的旧内容尚未被处理;或者工具没有输出可核对的清单,只有百分比。这种情况下继续投入时间续扫的收益很低。放弃不等于什么都不做,应记录本次中断的位置和原因,换成能输出逐条清单的扫描方式再开始,否则下一次中断还会遇到同样的问题。
覆盖范围本身不是目的,它决定你敢不敢用这批数据去处置旧内容。一个可操作的判断顺序是:
假设一次扫描在1500个对象中完成了900个,缺口600个里有400个属于三年前发布、近期无访问记录的内容。此时可以先用900个已完成对象处理高优先级部分,把400个低优先级缺口留到下一轮;但如果缺口里包含仍在导航或内链中出现的页面,就应先补扫再决策。这个例子的数字仅用于说明比较方法。
无论最终选择哪种处理方式,都应在中断后立即记录四项信息:中断时间点、已处理对象数、可枚举总数、中断原因。这份记录的作用是让下一次扫描有对照基准。如果第二次扫描的已处理数仍然停在相近位置,说明问题出在特定对象或工具配置上,而不是偶发中断。此时继续盲目重扫不会改变结果,应转向缩小范围或更换扫描粒度。工具的具体断点续扫能力、清单导出格式和错误分类方式因产品而异,使用前需要以该工具当前的实际输出为准进行核对。