降权查询:一次全站扫描被中断后怎样判断已覆盖范围

📍 WDQWDWQD987AAAAA:5.9.120.8
📱 Mozilla/5.0 (compatible; SERankingBacklinksBot/1.0; +https://seranking.com/backlinks-crawler)
🔗 /a77fefd752cb.html
📄

降权查询:一次全站扫描被中断后怎样判断已覆盖范围

先看扫描器有没有留下可续跑的进度记录,再看已处理条目是否带完整时间戳和结果状态。如果两者都有,覆盖率可以按“已确认条目数÷计划条目数”估算;如果只有部分结果、没有断点信息,那么这次扫描只能当作抽样,不能当成全站结论。

假设一次中断:为什么直觉上的“差不多扫完了”不可靠

假设你发起一次全站降权查询,计划检查 5000 个 URL。任务跑到约 40% 时被手动停止,页面显示“已处理 2036 条”。直觉上很容易把 2036 当成接近一半的覆盖量,但中断后的进度显示可能只代表已写回结果的条目,不代表已抓取或已判定完的条目。排队中、抓取失败、待重试的 URL 可能没有进入这个数字,所以“已处理”与“已覆盖”不是同一件事。

要区分这两种解释,需要找三类证据:任务日志里的开始与中断时间、每条结果的状态字段、以及断点或游标信息。只有数字而没有状态字段时,中断位置无法复原,后续判断只能降级为“部分样本”。

中断后先核对的三类证据

第一类是任务级记录:计划总量、实际启动时间、中断时间、是否保存断点。第二类是条目级记录:每个 URL 的结果状态是成功、失败、跳过还是待处理,以及结果写入时间。第三类是范围级记录:URL 清单来自哪里,扫描期间清单有没有变化。

核对完成后做一个动作:把已确认成功的条目单独导出,与计划清单做差集。差集结果决定下一步是“从断点续跑”还是“重新全量扫描”。如果差集很小且断点完整,续跑更省时间;如果差集大且状态混乱,重新扫描反而更可控。

用覆盖率区间代替单一百分比

在证据不完整时,不要给出一个精确覆盖率,而是给出区间。假设计划 5000 条,已确认成功 1800 条,另有 300 条状态未知,那么覆盖率可以写成“至少 36%,至多 42%”。下限只算确认成功的条目,上限把状态未知的条目也计入已覆盖。这个区间的作用是让后续决策有边界:如果下限已经足够支撑结论,可以直接用;如果上限和下限差距过大,说明证据不足,需要补扫。

这个区间只用于说明假设的比较方法,不代表任何真实任务的完成比例。实际数字需要以你自己的任务日志为准。

什么情况下可以直接续跑,什么情况下应重新扫描

可以直接续跑的条件通常包括:断点游标可读、清单未变、失败条目有明确错误类型且可重试。此时续跑后只需复查断点附近的条目,确认没有重复写入或跳过。

应重新扫描的条件通常包括:没有断点记录、清单在中断期间被修改、或大量条目状态缺失。重新扫描前先缩小范围,例如按目录或按更新时间分批,避免再次中断后仍然无法判断覆盖范围。分批扫描的代价是总耗时增加,但每批结束后都能得到可核对的覆盖结论。

如果两次扫描结果差异明显,不要直接认定其中一次错误。先检查两次的清单、时间窗口和状态定义是否一致,再决定以哪一次为准。

把判断结果写进下一次任务的前提

无论选择续跑还是重扫,都把本次的覆盖区间、未覆盖差集和失败原因记录下来,作为下一次任务的输入。下一次启动前先确认清单版本和断点策略,这样即使再次中断,也能在几分钟内判断已覆盖范围,而不是重新猜测进度数字的含义。

图1 图2

nginx