百度司南工具:一次全站扫描被中断后怎样判断已覆盖范围

📍 WDQWDWQD987AAAAA:216.73.216.175
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /541c105dc551.html
📄

百度司南工具:一次全站扫描被中断后怎样判断已覆盖范围

先给结论:扫描中断后,不要用“进度条停在哪里”或“结果条数”直接推断覆盖范围,这两者都可能与真实覆盖脱节。更可靠的做法是找一份与扫描任务同源、且能按URL逐条核对的中间记录(例如任务日志、已处理URL清单或分片状态文件),用它反推“哪些已处理、哪些未知”。如果这份记录不存在或不可导出,那么这次扫描的覆盖范围本质上不可判定,应把结论降级为“部分样本”,而不是“全站”。

为什么中断后的直觉判断经常是错的

中断场景下最反直觉的一点是:页面显示“已完成80%”或结果列表很长,并不代表覆盖了80%的URL。进度可能按任务批次计数,而不是按去重后的URL计数;结果列表可能包含同一URL的多次抓取记录,也可能因为写入顺序与处理顺序不一致而出现空缺。

另一个常见误判是“结果条数接近预期就当作扫完了”。如果站点存在大量参数化URL、分页或重复模板,条数很容易被撑大;反过来,如果扫描在写入阶段被中断,已经处理过的URL也可能没有落库。因此条数和覆盖范围是两件事,不能互相替代。

可区分的原因大致有三类,判断方式不同:

这三类的处理动作完全不同:第一类要补扫,第二类要补写或重跑,第三类不需要补,只需要核对规则。

用可核对的证据圈定已覆盖范围

判断覆盖范围的核心是找到“处理单位”的清单,而不是看汇总数字。假设某次扫描按URL分片执行,每个分片处理固定数量的URL,那么中断后可以这样核对(以下为假设示例,用于说明方法,不代表任何工具的实际字段):

  1. 导出任务的分片状态,标记每个分片为“已完成”“处理中”“未开始”。
  2. 对“处理中”的分片,取该分片内的URL清单,与结果记录做左连接,得到“有结果”和“无结果”两组。
  3. 对“无结果”的URL,回到请求日志确认是否被访问过:访问过但无结果,归入写入缺失;未访问过,归入未处理。

这样得到的不是一个大致的百分比,而是三份可核对的名单:已覆盖、待补扫、待补写。后续动作直接建立在这三份名单上,而不是重新全站跑一遍。如果站点规模不大,重新全量扫描可能比核对更省事;但如果站点有抓取配额、有对方服务器压力限制,或者扫描本身耗时很长,那么先核对再补扫通常更划算。

保留、改写还是退出:三种取舍的适用前提

拿到核对结果后,是否继续用这次扫描的数据,取决于用途,而不是取决于覆盖了百分之多少。

保留原结果适用于:缺的URL集中在低价值区域(如标签页、归档页),且本次结论只用于方向性判断。此时可以在报告里明确标注“基于已覆盖部分”,并列出未覆盖范围,避免把样本结论说成全站结论。

改写为补扫任务适用于:缺失URL落在核心栏目、商品详情或主要落地页,且这些页面会直接影响结论。动作是把“待补扫”名单单独排队,只跑缺失部分,再与原结果合并。合并时要保留来源标记,否则后续无法区分哪些是首轮结果、哪些是补扫结果。

退出并重跑适用于:中间记录缺失、无法区分处理中断与写入中断,或者规范化规则在中断前后发生了变更。这种情况下继续补扫只会让数据口径更混乱,重跑一次并全程保留分片状态反而更省事。

这三种取舍没有默认优先级。判断标准只有一条:现有证据能否支撑你要下的那个结论。支撑不了,就降级结论或补证据,而不是靠估算填补。

一个可操作的核对顺序

如果时间有限,可以按下面的顺序推进,每一步的产出决定下一步:

需要提醒的是,请求量归零、结果条数骤降或日志出现空档,都不能单独证明中断发生在哪一步。它们只是线索,还需要和分片状态、URL清单交叉验证。把这些线索当成结论,往往会导致补扫范围过大或过小。

结论怎么表述才不越界

在报告或交付里,覆盖范围应写成可核对的区间和名单,而不是一个孤立百分比。例如“已核对URL清单共N条,其中已覆盖X条,待补扫Y条,待补写Z条”,比“完成度约80%”更接近事实。如果中间记录本身不完整,就明确写“覆盖范围不可判定,本次结论仅基于已获取样本”。

至于百度司南工具在中断恢复、分片导出或断点续扫方面提供哪些具体入口和字段,不同版本和授权方式下可能不同,需要以你当前实际使用的界面和文档为准,核对后再决定是保留、补扫还是重跑。

图1 图2

nginx