中断本身不会留下一个可靠的“已完成百分比”,你能判断的只是“哪些对象留下了可核对的扫描痕迹”。所以第一步不是重跑,而是把手中那份导出结果当成一份带时间戳的覆盖抽样:先确认它记录到哪一层、哪些字段能区分“扫过”和“没扫到”,再决定补扫范围。下面以你手头的一份扫描结果文件(CSV或列表导出)为对象,逐步转成可执行方案。
全站扫描的输出通常混合了三类记录:状态正常、状态异常、以及根本没有记录。中断后最容易误判的是把“没有记录”当成“没有问题”。判断覆盖范围时,先看导出里是否存在一个能标识每个对象的唯一字段,例如URL、页面ID或路径。如果这个字段缺失或大量为空,说明导出本身不完整,覆盖范围无法从这份文件推断。
可操作的核对动作:把导出按唯一字段去重后计数,再与你已知的站点对象总数对比。若去重后数量明显小于总数,缺口就是未覆盖的候选区间。这个动作的结果会直接决定下一步——缺口集中在某几个目录,就按目录补扫;缺口随机分散,说明中断发生在早期,整批重扫更省事。
多数扫描结果会带抓取时间或递增序号。把记录按时间或序号排序,观察最后若干条是否集中在同一路径、同一层级或同一批次。如果末尾记录明显聚集,中断点大概率就在那一批附近,之前的记录可视为已覆盖,之后的未覆盖。
但要注意一个边界:时间戳只能证明“写入时间”,不能证明“抓取完成时间”。如果工具是批量写入,末尾一批可能只写了一半。此时可以抽查末尾这批里的几个对象,手动访问确认其状态是否与导出记录一致。抽查一致,说明这批可信;抽查出现导出里没有的异常,说明这批记录不可靠,应把整批划入补扫范围。
假设你手中有一次扫描的导出,共记录约1200条,站点已知对象约3000个,时间戳集中在两个连续区间,末尾约80条全部落在/product/目录。按前面的方法:去重后仍为1200条,说明唯一字段可用;缺口约1800个,且末尾聚集在单一目录。
由此可推出一个假设性结论:中断发生在/product/目录扫描中途,其余目录可能已覆盖但无法仅凭此文件确认。下一步动作是先补扫/product/,再对另外两个未出现在导出中的目录做小样本抽查。如果抽查发现这些目录的对象状态与导出缺失一致,就把它们也纳入补扫;如果抽查发现它们其实已被扫过、只是导出时被截断,则只需重新导出,不必重扫。这个例子里的数字仅用于说明比较方法,不代表任何实际工具的规模。
判断覆盖范围的目的是产出一份可执行的补扫清单,而不是得到一个精确百分比。清单应包含三列:对象标识、判断依据(无记录/末尾聚集/抽查不一致)、处理方式(补扫/重导/跳过)。
合并新旧导出时,以唯一字段为准去重,保留时间较新的一条。合并后再次计数,若总数接近站点对象总数,说明覆盖判断基本成立;若仍明显偏少,说明还有目录级缺口,需要回到第一步重新圈定范围。
如果导出里没有唯一字段、没有时间戳、也没有序号,那么这份文件只能作为零散样本,不能用来推断覆盖范围,此时唯一稳妥的做法是整站重扫。另一种情况是站点在中断前后发生了结构变化,例如目录改名或对象被删除,此时旧导出里的“已覆盖”对象可能已不存在,直接合并会产生错误结论,需要先核对当前站点结构再决定补扫范围。
具体到你所用的工具,字段名称、导出格式和是否保留中断记录都需要以实际版本为准;不同工具对“已扫描”的定义可能不同,判断前先确认这一点,再套用上面的步骤。