先看中断发生在哪个阶段,再决定是否沿用已有结果。如果扫描在“发现URL”阶段就停了,未列出的大多还没被访问;如果已经进入“抓取并分析”阶段,那么已输出记录的页面通常完成了分析,但链接关系、重定向链和孤岛页面可能不完整。判断覆盖范围的核心不是看进度条,而是看工具是否留下了可续跑的任务状态、已抓取清单和失败队列。
扫描被中断的原因不同,已有数据的可信边界也不同。常见有三类:
一个实际动作是:打开工具的抓取日志或任务历史,找到最后一次成功提交的批次编号或时间戳。如果日志只记录“开始”和“结束”,没有中间检查点,那么中断后的数据边界无法精确还原,此时重新扫描比修补更可靠。这个判断会直接影响下一步:有检查点就续跑,没有检查点就重来。
不要只依赖一个总数。把工具输出拆成三份清单,分别核对:
假设一次扫描计划覆盖8000个URL,中断时成功清单有5200条,失败清单有300条,待抓取队列显示剩余2500条。三者相加正好等于8000,说明覆盖范围可以精确计算。如果三者相加明显小于计划数,说明存在未被任何清单记录的URL,通常是发现阶段被截断所致。此时应把站点地图和内部链接重新作为种子,而不是只续跑原队列。
覆盖范围清楚之后,真正要决定的是旧内容怎么处理。这里没有统一答案,只有不同前提下的取舍:
一个可操作的判断顺序是:先从已覆盖清单中筛出“有外链或有点击”的页面,这批优先保留或改写;再从失败清单中筛出“曾经重要但当前抓取失败”的页面,这批先修复可访问性再决定;最后处理剩余的低价值页面,批量退出。这个顺序能避免把还有价值的旧页面误删。
如果决定续跑,不要直接全量继续。先选取已覆盖清单中最后100条URL,重新抓取一次,对比状态码、标题和主要链接是否与之前一致。如果一致,说明工具状态可信,可以续跑;如果出现大量不一致,说明站点在中断期间发生了变化,或者工具状态已损坏,此时应重新扫描而不是续跑。
这个验证动作的结果会决定下一步:一致就续跑,不一致就重来。它也能帮你发现中断期间是否发生了服务器配置变更、CDN切换或 robots 规则调整,这些变化会让旧扫描结果部分失效。
无论最终选择续跑还是重来,都应把以下信息记录下来:扫描时间、中断原因、已覆盖URL数量、未覆盖URL数量、失败清单处理方式、以及最终决定(保留/改写/退出的页面范围)。这份记录不需要复杂格式,但必须能让下一个人在不重新扫描的情况下知道哪些页面已经检查过、哪些还没有。缺少这份记录时,覆盖范围只能靠记忆或再次全量扫描来确认,成本会明显上升。