扫描中断后,先不要点“重新开始”。更稳的做法是:在原任务旁边新建一个只针对未覆盖范围的补扫任务,用可核对的边界清单确认哪些页面已有完整结果。判断依据不是进度条,而是导出文件里的URL集合、每个URL是否完成分析、以及扫描配置是否在中断前后保持一致。这三项对得上,覆盖范围才可信。
中断发生时,常见现象是进度显示回退或停在某个百分比,但导出目录里仍出现新文件。这会产生两种相反的解释:一是工具在中断前已把部分结果落盘,进度只是界面层的估算;二是新文件来自上一轮残留或另一个任务,和本次扫描无关。仅凭“文件在增长”就认定覆盖扩大,容易把旧数据算进本次范围。
区分这两种解释,需要看文件的修改时间是否落在本次扫描的起止区间内,以及文件名或内部字段是否带有本次任务的标识。如果导出结构里没有任务标识,就改用URL集合做差集:把本次已确认完成的URL与全站URL清单比对,差集才是真正待补扫的部分。
第一类是URL级完成标记。逐条检查导出记录,确认每个URL都带有分析状态字段,而不是只有抓取状态。只有抓取成功、没有分析结果的记录,不能算已覆盖。
第二类是配置一致性。中断前后如果改了匹配规则、并发数或过滤条件,前后两段结果就不能直接合并。此时应把中断前的配置固定下来,补扫沿用同一套参数,否则覆盖范围会出现口径裂缝。
第三类是时间边界。记录中断时刻,把该时刻之前完成落盘的记录视为已覆盖,之后不完整的记录单独列出。假设一次扫描覆盖1000个URL,中断时导出文件里有620条带完成标记的记录,其中15条时间戳早于任务开始,那么可计入本次的只有605条,其余395条进入补扫清单。这个数字只是说明比较方法,不代表任何工具的实际表现。
策略A是直接重跑全站。它适合URL总量小、单次扫描耗时短、且配置没有改动的情况。代价是重复消耗请求额度,并可能让同一批页面在短时间内被重复处理;如果站点对频繁访问敏感,还可能触发限流,反而拖慢后续进度。
策略B是只补扫差集。它适合总量大、已有结果占比高、配置可固定的情况。代价是需要先花时间整理URL清单和完成标记,整理本身有出错风险;如果差集清单漏掉部分URL,覆盖范围会留下盲区,而且盲区不会在进度条上显示。
选择条件可以归结为一句:能可靠算出差集,就选B;算不出或差集接近全量,就选A。判断“算得出”的标准是,你手里有一份独立于工具的全站URL来源,比如站点地图或站内链接清单,而不是只依赖工具自己导出的记录。
具体动作是:把中断前的扫描配置导出或截图存档,停止在原任务上继续操作,新建补扫任务并只导入差集URL。执行后观察两件事——补扫任务的完成标记是否覆盖差集清单的全部条目,以及合并后的URL总数是否等于全站清单去重后的数量。
如果合并后总数对得上,可以把两段结果合并使用,进入下一步分析。如果对不上,先不要继续扩大扫描,而是回到URL清单本身,检查是否有重复、参数变体或已被过滤的页面。这个动作的结果直接决定下一步:总数吻合才值得做结果分析,不吻合则应先修清单,否则后续所有结论都建立在残缺样本上。
扫描中断后最危险的不是丢数据,而是把不完整的结果当成完整结果使用。进度归零、抓取量下降或某项统计变小,都不能单独证明处理方式正确,它们也可能只是界面刷新、任务切换或过滤条件生效造成的表象。真正能支撑决策的,是一份写明时间边界、配置口径和URL差集的覆盖说明。补扫完成并核对总数之后,再决定这份数据是否够用;如果仍缺关键页面,就继续补,而不是用现有结果硬撑结论。