先别重跑。中断后第一步是找到工具留下的进度边界:它扫到哪个URL、哪个词、哪个时间点。只有确认边界,才能判断哪些结果可用、哪些必须补扫。如果你手里拿到的是一份残缺导出,先按URL分组,再按词分组,看两组数据是否在同一断点上。
全站扫描中断后,工具通常会留下三类痕迹,可信度不同。
判断顺序是:先看日志,再看导出,最后看缓存。如果只有导出,就把导出里每个URL的记录数与工具单页正常产出量做对比。假设一个页面正常应产出标题、描述、内链、词频四类记录,而导出里某页只有标题一类,那这一页大概率处在中断边缘,不能算已覆盖。
把站点已有的URL清单和扫描结果做差集,是判断覆盖范围最直接的动作。具体做法:
差集结果会影响下一步:如果未覆盖URL集中在某个目录或某种模板下,说明中断可能发生在按目录顺序处理时,补扫可以从该目录开始;如果未覆盖URL随机分布,说明中断更可能是连接或超时导致,需要先调整并发或超时设置再重跑。这一步的结果直接决定你是补扫还是重跑,不要跳过。
差集里出现的URL不一定都是没扫到。有些页面可能被扫过,但因为页面本身没有目标词、被robots限制、返回非200状态,工具没有产出记录。判断方法是查该URL在日志中的状态码和抓取时间:
把这三类分开后,你的补扫清单会小很多。假设基准清单有1000个URL,差集有300个,其中150个是404、100个是空结果,真正需要补扫的只有50个。这个区分动作能避免把重跑成本花在无效页面上。
如果你的扫描目的是清理旧内容、让部分旧页面退出,那覆盖范围判断还要多一层:哪些页面本来就不需要扫。比如已经决定下线的活动页、已合并的重复页、已跳转的旧路径,它们是否被覆盖不影响决策。这时你应该先把基准URL清单按“保留、观察、退出”三类标记,再和扫描结果做差集。
对标记为“退出”的页面,不需要补扫;对标记为“保留”的页面,必须完整覆盖;对“观察”的页面,可以接受部分数据,但要在补扫时优先处理。这样处理的结果是:补扫范围从全站缩小到保留和观察两类,扫描中断的影响被限制在真正影响决策的页面上。下一步就是按这个缩小后的清单重新发起扫描,并在中断后立即导出日志,避免再次丢失边界。
无论你选择补扫还是重跑,都要先确认工具是否支持断点记录或分批导出。如果工具本身不提供进度日志,就在扫描前手动把URL清单拆成小批次,每批完成后立即导出并记录批次编号。这样即使再次中断,你也能凭批次编号知道覆盖到哪里。这个动作不改变工具能力,但能让你在下一次中断时不再依赖估算。
判断已覆盖范围的核心不是猜,而是用日志、差集和状态码三样东西交叉验证。三者对不上时,以日志为准;日志缺失时,以差集加状态码为准;两者都没有时,只能重跑,并把边界记录方式先补上。