先看中断前最后一次成功写入的批次记录,而不是看进度条停在哪里。关键词跟踪软件通常按批次或分片把结果写入本地库或远端库,中断时进度条可能已经走完,但最后一批数据没有提交;也可能进度条只到一半,但前半段结果已经完整落库。判断覆盖范围的关键,是找到可核验的批次边界,再决定补扫还是重扫。
中断后打开结果页,常见两种矛盾:进度显示接近完成,但可查询的URL数量明显偏少;或者进度只到中途,结果数量却和上次完整扫描差不多。前一种容易让人误以为只需补扫尾部,后一种容易让人误以为已经扫完。这两种判断都可能出错,因为进度来自任务调度层,结果数量来自存储层,两者更新节奏不同。
一个可用的假设例子:假设某次扫描计划处理1000个页面,按每批50个写入。中断发生在第600个页面附近。如果第12批(第551至600个)的写入事务未提交,那么存储层实际只有550个页面的结果,但进度可能已经显示到600。此时补扫应从第551个页面开始,而不是第601个。
解释一:中断只影响最后一批的提交,之前批次完整。这种情况下,已覆盖范围等于最后一次成功提交的批次末尾,缺口是连续的、可定位的。
解释二:中断前已有部分页面抓取失败或超时,只是被计入进度。这种情况下,已覆盖范围不是连续区间,而是夹杂空洞,缺口分散在多个位置。
两种解释对应的动作完全不同:前者只需从断点补扫;后者需要先找出失败页面再决定是否重扫。如果混淆,补扫会留下分散空洞,后续做排名对比时会出现某些URL缺失却不易察觉。
优先看中断前最后若干批次的写入日志或任务日志,而不是总进度。可核验的证据包括:
如果最后一条成功提交记录之后没有任何写入,且之前批次连续无跳号,倾向于解释一。如果存储层页面标识存在跳号,或日志中有失败记录,倾向于解释二。注意:结果数量归零或明显偏少,不能单独证明扫描失败,也可能是查询条件、时间范围或索引尚未更新所致,需要结合批次记录交叉判断。
确认是解释一后,动作是:从最后成功提交批次的下一个页面标识开始补扫,并在补扫前记录断点编号。补扫完成后,核对存储层页面标识是否连续。如果连续,可进入下一步的排名对比;如果不连续,说明补扫本身也有缺口,需要回到失败记录排查。
确认是解释二后,动作是:先导出失败或缺失的页面清单,评估这些页面在整体中的占比。占比小且分散时,可对缺失页面单独补抓;占比大或集中在同一目录时,重扫该范围通常比逐个补抓更可控。重扫前先保留已有结果,避免覆盖后无法对比新旧差异。
具体到工具操作,不同关键词跟踪软件的批次记录位置、日志字段和补扫入口并不相同,需要以当前版本的文档或界面为准;如果无法确认,可先用小范围测试扫描验证批次写入行为,再决定全站动作。这个测试本身也是证据:测试批次的提交边界是否清晰,直接决定后续能否安全补扫。
每次扫描前记录计划范围、批次大小和起始页面标识;扫描中定期记录最后成功提交的批次编号;中断后先核对这三项,再决定动作。这样做的结果是把“覆盖了多少”从主观估计变成可复查的批次边界,下一次中断时不必重新推断。如果工具不提供批次编号,可退而记录每次成功写入的时间戳和页面标识范围,作为替代边界。
判断已覆盖范围的核心不是看进度百分比,而是找到最后一次完整提交的边界,并确认边界之前是否存在分散缺口。边界清晰时补扫,缺口分散时先评估再决定补抓或重扫,判断依据始终是日志和存储层记录,而不是界面上的进度提示。