先给结论:中断后不要用“有没有结果”判断覆盖范围,而要用可复核的进度证据。最可靠的做法是找到扫描工具留下的任务记录或日志,确认它已经处理到哪个边界(例如最后一个完成的URL、最后一个成功批次或最后一条时间戳),再拿这个边界与站点的URL清单做差集。如果没有任何进度记录,就只能按最保守的假设处理:把中断前看到的结果视为不完整样本,重新规划一次可分段、可续跑的扫描,而不是直接补跑剩余部分。
常见场景是:执行扫描的人说“已经跑了大半”,使用结果的人却发现某些栏目一个数据都没有。双方都没有说谎,分歧来自对“覆盖”的定义不同。执行方说的覆盖可能指任务进度条走到了某个百分比,使用方说的覆盖指自己关心的那批URL是否都出现在结果里。进度百分比反映的是工具内部的处理节奏,不等于站点结构上的完整覆盖。把这两种口径混在一起讨论,就会陷入各说各话。
要把分歧转成可核对的项目,第一步是让双方各自写下自己判断覆盖范围的依据。执行方写“依据是进度条到70%”,使用方写“依据是产品页目录下没有记录”。两份依据放在一起,就能看出真正需要验证的是进度条与URL清单之间的对应关系,而不是争论谁对谁错。
中断后出现的结果,通常可以归入两种解释。
解释一:任务接近完成,剩余部分影响有限。支持这种解释的迹象是:结果里已经包含站点主要栏目和大部分层级较浅的页面,缺失的集中在深层分页或参数页;任务记录显示处理顺序基本遵循站点结构,中断点靠后。
解释二:任务只覆盖了一个片段,缺失部分可能包含关键区域。支持这种解释的迹象是:结果集中在某一个子目录或某一种页面类型,其他栏目几乎为空;任务记录显示处理顺序是按某种排序(如字母序、入库时间)推进,中断点落在排序靠前的位置,意味着大量URL还没轮到。
两种解释对应的下一步动作完全不同。如果是解释一,补跑剩余部分并核对差集即可;如果是解释二,补跑剩余部分仍然会漏掉排序靠后的整批URL,必须重新设计扫描的分段方式。
以下证据可以按可获得性依次检查,每检查一项都会缩小判断范围。
需要提醒的是,抓取量或结果条数突然归零,不能单独证明任务已经处理完某个区域。归零还可能来自限流、超时、解析失败或清单本身就没有该区域URL。把这些可能性排除后,归零才能作为覆盖证据。
假设某站点有A、B、C三个一级目录,各含若干页面,扫描任务按目录顺序执行,在B目录中途被中断。此时结果里A目录完整、B目录部分、C目录为空。
如果直接补跑,从B目录中断处继续,那么C目录会被补上,但B目录中断点附近可能因边界处理产生重复或遗漏。更稳妥的动作是:先导出A、B目录已有结果,与完整URL清单做差集,得到“确定未覆盖”的清单;再以这份差集为输入重新扫描,而不是依赖工具自身的续跑功能。这个动作的结果是,覆盖范围从“估计大概到B”变成“有明确差集清单”,下一步的验收就有了可核对的依据。
如果任务日志完全缺失,假设就只能停留在假设层面。此时应把已有结果标注为“不完整样本”,在后续任何基于该结果的判断中都保留这一前提,并重新规划一次带分段和断点记录的全站扫描。
多人协作时,覆盖范围的分歧往往在交接环节暴露。可以在交接时固定核对三项:中断点证据(日志、时间戳或批次号)、URL清单版本(扫描时用的是哪一份)、差集结果(哪些确定未覆盖)。三项齐全,接手的人不需要重新猜测;缺哪一项,就在交接记录里标明该项缺失,并说明由此带来的判断限制。
这样做的实际影响是:下一次扫描的设计会更有针对性。如果这次暴露出的是排序导致的片段化覆盖,下次就按目录分段并分别记录断点;如果暴露的是日志缺失,下次就先确认工具能否输出可续跑的进度记录,再决定是否启动全站任务。