先别急着重跑。中断后判断覆盖范围,核心是找到扫描过程中留下的“已完成边界”,而不是凭感觉估算。如果工具支持断点续扫或进度快照,保留当前任务并只补扫未完成部分,通常比直接重跑更省资源;如果工具没有这类能力,或者你无法确认边界,就要考虑改写查询范围或退出当前任务。下面给出可执行的最小动作和判断依据。
扫描被中断可能发生在两个阶段:抓取阶段和写入阶段。抓取中断意味着部分URL根本没有被请求;写入中断意味着数据已经取回,但没进入结果表。两者对覆盖范围的影响完全不同。
区分方法很实际:查看工具是否有本次任务的运行日志、进度条快照或临时文件。如果日志显示“已处理 N 条”,且这个N在中断前后没有跳变,说明边界大致可靠;如果日志只有开始时间,没有逐条记录,那这个N就不能当作覆盖范围。
一个可执行动作:找到中断前最后一次进度输出,记下它的时间戳和计数。然后检查结果表里最后一条记录的抓取时间是否接近这个时间戳。如果接近,说明写入和抓取基本同步,边界可信;如果结果表最后一条记录比日志时间早很多,说明中间有大量数据没写回,不能只补扫剩余部分。这个判断结果直接决定下一步:边界可信就保留任务、补扫剩余;边界不可信就改写范围或退出重来。
三种取舍各有前提,不是哪个更“正确”。
注意,保留不等于盲目续跑。如果工具没有记录已完成边界,保留任务只是保留了一个无法验证的进度数字,补扫结果可能大量重复或大量遗漏。此时改写范围是更稳的选择。
假设你只有部分目录的读取权限,或者工具本身不提供全站扫描的完整结果。这时候不要假装覆盖了全站,而是做两件事:
这个动作的结果是:你的分析虽然不完整,但边界清晰,后续有人补扫其余目录时,可以直接合并而不冲突。如果跳过这一步,直接输出全站结论,后面一旦补扫发现新问题,之前的结论就要推翻重来。
中断本身不说明站点有问题,也不说明工具有问题。以下推断都不成立:
一个假设例子:假设你扫描了站点60%的URL后中断,已扫描部分发现若干条重复标题。你不能据此说全站重复率就是某个比例,因为剩余40%的URL可能有完全不同的结构。正确做法是标注“在已覆盖的60%中观察到若干条重复”,并说明剩余部分尚未验证。
完成上述判断后,你手里应该有一个明确的状态:覆盖边界是否可信、已覆盖范围是什么、未覆盖范围是什么。基于这个状态再决定是补扫、改写还是退出。如果边界可信且中断原因已消除,补扫剩余部分并合并去重;如果边界不可信,改写为更小的范围重新扫描;如果权限或数据源本身不完整,退出全站任务,转为局部扫描并明确标注覆盖范围。这个顺序能避免在不确定的进度上反复重跑,也能让后续的分析结论有据可依。