百度SEO软件:一次全站扫描被中断后怎样判断已覆盖范围

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

百度SEO软件:一次全站扫描被中断后怎样判断已覆盖范围

中断后不要先猜“扫了多少”,而要把已扫部分和未扫部分分开留证:先保存本次扫描的日志、导出文件和任务配置,再用站点自身可枚举的URL集合与日志中的成功记录做差集。差集里剩下的地址就是需要补扫的范围,而不是把中断前的百分比直接当作覆盖率。下面按你手里已有的扫描导出文件、站点地图和访问日志,逐步转成可核对的补扫清单。

先分清扫描中断留下的三种状态

同一次中断,不同角色会有不同理解:执行的人说“跑了一半”,审阅的人说“核心页面都看到了”,负责交付的人说“没有完整报告不能算数”。这三种说法对应三种不同事实,需要分别核对。

把导出文件按这三类拆开后,你会发现“覆盖率”不再是一个百分比,而是三份名单。下一步要做的不是重新全量扫描,而是判断哪份名单需要补齐。

用站点自身可枚举的URL集合做差集

判断覆盖范围需要一个参照集合。对大多数站点来说,最可靠的参照不是扫描器自己的进度条,而是站点自己知道的URL来源:XML站点地图、栏目列表页、分页导航、以及服务器访问日志中出现过的正常返回地址。

假设一个站点有A、B、C三个栏目,导出文件里A栏目解析了120条、B栏目解析了80条、C栏目为空。此时不能直接说覆盖率是200除以总数。你需要先确认C栏目在站点地图里有多少条地址,再确认这些地址在本次日志里是“未请求”还是“请求了但未返回”。如果是未请求,说明中断发生在进入C栏目之前;如果是请求了但未返回,说明中断点落在C栏目内部,补扫可以从C栏目的第一条未返回地址开始。

实际动作:把导出文件中的已解析地址、站点地图中的全部地址、日志中的请求地址分别去重后做两次差集。第一次差集得到“站点有但扫描没请求”的地址,第二次差集得到“请求了但没解析”的地址。两次差集合并,就是补扫范围。这个动作的结果会直接影响下一步:如果差集集中在少数栏目,就按栏目补扫;如果差集分散且没有规律,才需要考虑重新全量扫描。

中断位置不同,补扫策略也不同

扫描器按什么顺序遍历,决定了中断后哪些部分容易缺失。常见顺序有三种,你可以从导出文件里的地址排列方式反推。

  1. 按栏目深度优先:中断往往发生在某个深层栏目内部。表现为前几个栏目解析完整,后面栏目整块缺失。补扫时从缺失栏目的入口页开始即可,不必重跑前面的栏目。
  2. 按地址字母或ID顺序:中断点前后的地址分布均匀,缺失部分分散在多个栏目。这种情况下按栏目补扫会重复劳动,更适合用差集名单直接指定地址列表补扫。
  3. 按发现顺序(爬取队列):缺失范围取决于队列中尚未处理的地址,和栏目结构无关。此时站点地图与日志的差集最有用,因为它不依赖扫描器的遍历顺序。

如果你无法从导出文件判断顺序,可以取已解析地址的前十条和后十条,看它们在站点结构中的位置是否连续。连续则偏向深度优先,跳跃则偏向队列或字母顺序。这个判断只影响补扫的起点选择,不影响差集本身。

把分歧转成可核对的项目清单

当多个角色对“扫了多少”有不同理解时,争论百分比没有意义。更有效的做法是把分歧点转成一张可以逐项打勾的清单,每一项都有明确的核对来源。

清单中任何一项缺失,都会让覆盖率判断退回猜测。例如没有任务配置文件,就无法确认扫描是否故意排除了某些目录;没有日志,就无法区分未请求和请求失败。补齐这些材料后,再让各方对同一份差集名单确认,分歧通常会缩小到“哪些地址值得补扫”这个可讨论的问题上。

补扫后怎样确认范围已经闭合

补扫不是把差集名单跑完就结束。你需要确认补扫结果能合并回原导出文件,并且合并后不再产生新的差集。

具体做法是:补扫完成后,把新增的已解析地址与原导出文件合并去重,再和站点地图、日志做一次差集。如果差集为空,说明在当前参照集合下覆盖已经闭合;如果仍有地址,检查它们是否属于扫描配置中排除的范围,或者是否在站点地图中但实际返回异常。只有排除了这两种解释,才能认为覆盖范围完整。

需要说明的是,站点地图本身可能滞后,日志也可能因为采样或轮转而不完整。差集为空只能证明“在现有材料下没有发现遗漏”,不能证明站点不存在未被任何来源记录的地址。因此补扫结论应连同参照集合的来源和时间一起记录,方便后续复核。

图1 图2

nginx