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

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

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

结论先给:扫描被中断后,不要用“总条数”判断覆盖范围,而要用“已完成分片清单”判断。能确认覆盖的,只有那些已经跑完、且结果已落盘的分片;正在跑和未开始的分片都算未覆盖。若工具没有分片概念,只给了一个进度百分比,那么这个百分比不能直接换算成覆盖范围——这是最容易让多个角色产生分歧的地方。

先确认扫描是否按可分片单元推进

判断覆盖范围的前提,是这次扫描有没有可枚举的单元。常见的可分片单元有三种:按URL列表分批、按目录或子域分批、按站点地图文件分批。只要扫描是按其中一种推进,中断后就能列出“已完成”“进行中”“未开始”三张清单。

如果扫描是单进程流式抓取,没有分片记录,那么中断后唯一可靠的做法是重新导出已抓取URL的去重列表,再和原始URL集合做差集。差集之外的部分就是未覆盖范围。这一步不需要工具提供额外功能,只需要你能拿到原始URL集合和已抓取记录。

实际操作:先导出已抓取URL列表,按URL去重后计数,再和原始集合比对。结果会直接告诉你缺口有多大。如果缺口集中在某几个目录,下一步就优先补扫这几个目录,而不是整站重跑。

进度百分比为什么不能当覆盖范围用

进度百分比的分母往往是“预估总数”,而预估总数在扫描过程中会变。比如站点地图里列了8000条URL,但抓取过程中又发现了分页、参数页、标签页,实际待抓数可能涨到12000条。这时进度条走到60%,对应的已完成量可能是4800条,也可能是7200条,取决于分母是哪个时刻的值。

所以当有人拿“进度60%”说“大部分已经覆盖了”,这个判断不成立。反例很具体:假设扫描前2000条都是低价值列表页,真正重要的详情页集中在后4000条,那么60%的进度可能恰好停在详情页开始之前,覆盖范围里几乎没有目标页面。

要消除这种分歧,把“进度百分比”换成“已完成分片编号列表”。编号列表是可以逐条核对的,百分比不是。

用三个可核对项把分歧转成项目

多个角色对覆盖范围有不同理解时,争论“覆盖了多少”没有意义,应该把分歧拆成三个可以核对的项目:

三个集合列出来之后,覆盖范围就是“已完成集合”减去“失败与跳过集合”中需要重试的部分。谁对范围有异议,就让他指出这三个集合里哪一条记录不对,而不是继续争论百分比。

一个假设例子:中断发生在目录扫描中途

假设某次扫描按目录分批,顺序是 /news/、/product/、/help/,每批约3000条URL。扫描在 /product/ 进行到一半时中断。此时可确认的覆盖范围是 /news/ 全部完成,/product/ 完成约1500条,/help/ 完全未开始。

下一步动作不是重跑整站,而是先补扫 /product/ 剩余部分和 /help/。补扫完成后,再单独检查 /news/ 有没有因为中断导致结果未落盘的情况。如果导出记录显示 /news/ 的结果完整,就不需要重扫;如果落盘不完整,才需要补。

这个例子里,判断覆盖范围靠的是分批编号,不是总进度。假设的数字只用于说明比较方法,不代表任何真实项目的规模。

什么情况下上面的判断会失效

如果扫描工具在中断时没有持久化已完成记录,或者已完成记录和URL的对应关系丢失,那么“已完成分片清单”就不存在,上面的方法失效。此时只能重新扫描,并在下一次扫描前先确认工具是否支持断点记录或分批导出。

另一种失效情况是:原始URL集合本身在扫描期间被修改过。比如扫描过程中有人往站点地图里加了新目录,那么中断后的“未覆盖”里会混入新增URL,差集结果会偏大。遇到这种情况,先冻结原始集合,再重新比对。

所以,判断覆盖范围之前,先确认两件事:已完成记录是否可导出,原始集合是否在扫描期间保持不变。这两条不成立,任何覆盖范围结论都只能算估算。

下一步动作与结果如何影响后续

补扫完成后,把新的已完成集合和原始集合再做一次差集。如果差集为空,说明覆盖范围已经补全,可以进入结果分析阶段。如果差集里仍有URL,看它们集中在哪个目录或哪种URL模式,再决定是继续补扫还是调整扫描规则。

这个动作的结果会直接影响下一步:差集为空时,分析的是全量数据;差集不为空时,分析结论只能限定在已覆盖范围内,不能代表整站。把这句话写进报告里,比争论“覆盖了多少”更有用。

图1 图2

nginx