扫描被中断后,不能靠“进度条停在哪”判断覆盖范围,因为进度条通常反映任务队列位置,而不是已经完成抓取和解析的页面数。更可靠的做法是:先确认中断前是否留下了逐条结果或日志,再决定是续扫、重扫还是改用抽样核对。两种条件下的处理方式完全不同。
如果扫描工具在中断前把每条已处理页面写入了结果文件或日志,那么覆盖范围可以直接由记录条数推断,而不是由界面显示的百分比推断。此时需要做三个动作。
这里的关键假设是:结果文件中的记录顺序与抓取顺序一致,且没有因为写入缓冲而丢失尾部数据。如果日志采用批量写入,最后一批可能尚未落盘,续扫起点应向前回退一小段,宁可重复几条,也不要漏掉边界附近的页面。重复记录可以在合并时去掉,漏掉的页面却不会自己出现。
如果扫描中断后只留下一个总数或一个百分比,没有可用的逐条结果,那么“已覆盖多少”无法精确还原。此时不要继续猜测,而应换一种判断方式:用可复现的抽样去估计覆盖是否足以支撑下一步决策。
具体动作是:从站点地图、栏目页或已知入口中抽取一组页面地址,组成核对清单;重新发起一次范围更小的扫描,只针对这份清单;把新结果与中断前残留的总数对照,看两者是否指向同一批页面。如果新扫描能稳定命中清单中的大部分页面,而残留总数明显偏小,说明中断发生在早期,覆盖不足,应重新全扫;如果残留总数已经接近清单规模,且抽样页面大多能在残留结果中找到,说明覆盖可能已接近完成,可以只补扫未命中的部分。
这个判断成立的前提是抽样清单本身具有代表性,不能只抽首页和几个栏目页。清单里应包含不同层级、不同模板的页面,否则估计会偏向容易抓取的部分。抽样核对给出的是范围估计,不是精确覆盖率;它适合用来决定“重扫还是补扫”,不适合用来对外报告完整覆盖数字。
两种条件对应两种选择,但实际决策还要看以下证据,它们能把“感觉快扫完了”变成可核对的依据。
一个假设的例子:某次扫描计划处理 5000 个地址,中断时残留记录 3200 条,其中 2900 条字段完整,300 条只有地址。续扫时把 2900 条完整记录作为已完成,300 条只有地址的页面重新抓取,再补扫剩余地址。合并后若总数明显低于 5000,说明还有入口未被发现,需要回到站点地图或栏目列表补充地址来源,而不是继续在原有队列上重试。
如果扫描结果只用于内部排查,覆盖到主要栏目和模板即可,不必追求全量;如果结果要用于对外报告或批量修改,覆盖不足会直接导致结论偏差,应先把地址来源补全,再重扫一次。无论哪种用途,都建议在结果中保留抓取时间字段,因为站点内容会变化,中断前后抓取的页面可能处于不同状态。把时间信息一起导出,后续复查时才能判断某条记录是否仍然有效。
最后需要核对具体工具是否支持续扫、排除清单或按时间增量抓取,这些能力因版本和配置而异,应以实际界面和文档为准。判断覆盖范围的核心不是相信进度显示,而是找到可逐条核对的记录边界,或者用可复现的抽样替代精确统计。