先给结论:中断后不要问“扫了多少”,而要问“哪些页面已经有可核对的输出、哪些只是被访问过、哪些完全没进入队列”。假设一次针对约两千个URL的站点扫描在跑到中途时因权限失效而停止,日志只留下不完整的抓取记录,此时能执行的最小动作是导出一份已抓取URL清单,按目录、状态码和最后处理时间排序,再与站点地图或内链清单做差集。这个差集只能说明“未被本次记录覆盖”,不能证明页面有问题,也不能证明扫描逻辑正确。
扫描中断后,工具通常只留下部分记录。把记录分成三类,判断才有依据:
只有第一类可以当作已覆盖。第二类和第三类需要分别处理,不能合并成一个“剩余量”。如果只看工具显示的进度条或已处理数量,很容易把“已请求”误当成“已分析”。
缺少完整数据或权限时,仍可做一次差集核对。准备两份清单:一份来自工具导出的已抓取URL,一份来自站点地图、导航和重要栏目内链。把后者减去前者,得到未出现在抓取记录中的URL集合。
这个差集给出的是“本次未覆盖”的下限,而不是全站缺口。原因至少有三个:站点地图本身可能不完整;内链入口可能只覆盖主要栏目;工具可能因为规则设置跳过了某些参数或目录。因此差集适合用来决定下一步先补哪一块,不适合用来宣布全站覆盖率。
假设站点地图列出两千个URL,导出记录里有一千二百个,差集是八百个。不要直接说“覆盖率60%”。更稳妥的表述是:在站点地图这一参照下,至少八百个URL没有本次输出,其中需要优先检查的是导航和栏目页指向的入口。
同样是扫描中断,不同原因对应的处理方式不同。判断依据可以看日志里的状态码分布、最后处理时间是否集中、以及是否出现大量相同错误。
实际动作可以这样安排:先导出已产出结果的URL,标记为可用;再导出仅被访问的URL,按最后处理时间排序,取最近的一批做小范围复测;最后用差集确定未出现URL的目录分布。复测结果会直接影响下一步——如果最近一批能正常产出结果,说明中断更接近临时故障;如果同一批仍然失败,则应先修权限或规则,而不是扩大扫描范围。
可以下的结论:哪些URL已有完整字段,可以进入后续分析;哪些目录在差集中占比高,值得优先补扫;中断前后的错误是否集中在同一类状态。
不能下的结论:不能因为某批URL没有输出就判定它们不可索引或内容有问题;不能因为已抓取数量达到某个值就认为全站已覆盖;不能因为重扫后数量增加就证明之前的判断错误。请求量、抓取量归零或某个统计缺失,都可能由权限、限速、规则、入口不完整等多种原因造成,不能单独作为处理正确的证据。
如果只允许做一个动作,就做差集核对并标注参照来源。它不会给出完整答案,但能让你知道下一步该补权限、补入口,还是直接分析已有结果。