中断后判断覆盖范围,不能只看进度条停在百分之几。更可靠的做法是:把“已完成的清单”和“已写入的结果”分开核对,再用少量已知页面做抽样验证。如果两者对不上,说明中断点之前的结果也不完整,必须缩小范围重跑,而不是从中断处续跑。
全站扫描通常包含两个阶段:先枚举待处理页面形成队列,再逐页抓取并写入结果。中断可能发生在任一阶段,表现相似但含义完全不同。
判断属于哪一种,看任务是否留下了完整的待处理清单。有完整清单,就有明确的补跑边界;没有清单,任何“续跑”都建立在猜测之上。
进度显示已处理八成,不等于八成页面有有效结果。以下三个证据能区分这两种情况。
把待处理清单导出为一份纯文本列表,再把已写入结果的页面标识导出,做一次集合比对。差集就是缺口。如果结果条目数明显少于清单条目数,说明中断点之前也有丢失,不能只补尾部。
从“已显示完成”的区间里随机抽十到二十个页面,逐个打开核对:软件记录的主词、标题或抓取状态,是否与页面当前内容一致。假设某页在扫描后被改过标题,软件记录的是旧标题,这不算错误;但如果记录为空、状态异常或明显属于另一个页面,就说明写入过程有损坏。抽样发现一处异常,就要把排查范围扩大到同批次。
如果结果带有写入时间,观察时间分布。正常扫描的时间戳应连续推进;出现大段空白或时间倒退,往往对应中断或重试。断层之后的记录可信度低于断层之前,需要重新覆盖。
续跑的前提是:待处理清单完整、结果条目与清单能一一对应、抽样验证没有发现损坏。三个条件同时成立,才可以从缺口处继续,且续跑后仍要再抽样一次,确认新写入的部分同样可靠。
只要有一个条件不成立,就应缩小范围重跑。常见做法是先把站点按目录或模板切成若干小块,每块单独扫描并立即导出结果。这样单块中断的代价小,覆盖范围也容易确认。代价是总耗时变长,但换来的是每块结果都可验证。
需要说明的是,抓取量突然归零或某段时间没有新记录,不能单独证明任务已正确处理完该区间。它也可能是请求被限流、网络中断或写入被阻塞。要结合清单比对和抽样结果一起看,才能下结论。
这个顺序的价值在于:它把“覆盖了多少”从一个进度数字,变成一份可核对的缺口清单。缺口清单确定后,下一步该补哪些页面、要不要调整分块粒度,就有了明确依据。
不是进度百分比,而是待处理清单和结果导出文件。清单决定补跑边界,结果导出决定哪些页面需要复核。如果软件只提供界面内的进度显示、不提供可导出的清单,那么中断后判断覆盖范围会非常困难,这种情况下应优先确认该工具是否支持导出待处理列表,再决定是否继续用它做全站任务。
具体到某一款SEO关键词软件是否支持导出、导出字段有哪些,需要以该工具当前版本的说明为准,不要凭旧教程或他人截图推断。