先看扫描器是否留下了可核对的进度记录。如果工具把已访问URL、发现但未访问URL、错误URL分开保存,你可以据此重建覆盖边界;如果只有一条汇总进度条且中断后归零,就不能把“已跑过的部分”当成可用样本,只能缩小范围重跑。
全站扫描被中断时,最容易混淆的是抓取、解析和入库三个阶段。工具显示已抓取N个地址,不等于这N个地址都完成了链接提取、状态码判定和内容特征计算。中断点若发生在解析队列里,部分页面可能只拿到了响应头,正文和出链都没进入结果。
判断方法很直接:在结果里找几个已知页面,检查它们的记录是否同时包含状态码、标题、出链数量、内容长度这些字段。如果部分页面只有状态码,说明覆盖只到抓取层,不能用来判断站内链接结构或重复内容。此时保留这份结果的价值,仅限于确认哪些地址返回了错误状态。
另一种情况是工具按批次写入,每批完成后才落盘。中断时最后一批整体缺失,但前面批次完整。你可以用批次边界和URL排序规则反推缺口位置。前提是扫描顺序稳定,比如按字母、按目录或按发现顺序排列。如果顺序随机,批次边界就没有推断价值。
保留原结果继续增量扫描,适合扫描顺序可复现、且工具支持跳过已访问URL的场景。动作是导出已访问列表,作为下次扫描的排除条件。结果如何影响下一步:如果排除后剩余URL数量与预期站点规模差距很小,说明覆盖接近完整,可以继续用增量方式补齐;如果差距很大,说明中断前只覆盖了很小一部分,继续增量只是在延长一次本就不完整的扫描。
改写做法是把大扫描拆成按目录或按模板分组的小任务。适用前提是你能先列出站点的主要目录或页面类型,并且每组的URL数量可控。分组后单组中断的损失有限,覆盖范围也容易用组内数量对账。代价是跨组的链接关系会丢失,站内链接分析需要在合并阶段单独处理。
退出这次扫描,改用站点地图、日志或站内搜索数据来界定范围,适合工具本身不提供断点续跑、且重新全量扫描成本明显偏高的场景。前提是你手上另有能反映URL集合的来源。注意这些来源各有偏差:站点地图可能只包含已提交的规范地址,日志只覆盖被请求过的地址,站内搜索只覆盖有查询行为的页面。它们不能互相替代,但可以用来交叉验证扫描结果缺了哪一类页面。
发现覆盖不全之后,不要直接归因于中断。以下证据组合能区分不同原因:
这几种原因对应的下一步不同。截断造成的缺口可以续跑补齐;过滤规则造成的缺口需要先调整规则再重跑;超时造成的缺口要考虑降低并发或延长超时,否则续跑仍会在同一位置失败。
假设某次扫描中断后,结果里有1200条已访问记录,工具日志显示扫描开始前发现队列约有5000条,且写入方式是每500条一批。按批次推断,前两批完整,第三批可能只写入一部分,剩余约3800条未处理。此时若直接拿这1200条统计全站标题重复率,分母明显偏小,结论不能外推。
更稳妥的动作是先导出这1200条,按目录分组,看各组占比是否与站点结构大致相符。如果某一级目录完全没出现,而它在导航中地位与其他目录相当,就说明覆盖存在结构性缺口,应优先补扫该目录,而不是继续扩大已覆盖样本的统计口径。补扫后重新对账,如果剩余缺口从3800条降到几百条且分布均匀,这次扫描的结果才具备用于站级判断的基础。
无论选择保留、改写还是退出,都要在结果文件或交接说明里写清三件事:扫描覆盖的URL范围、中断发生在哪个阶段、哪些页面类型确定缺失。后续任何人拿这份数据做决策时,都要先看这三项是否满足当前问题。用于检查死链,部分覆盖可能足够;用于判断整站模板是否重复,部分覆盖往往不够。覆盖范围不清楚时,宁可缩小结论适用范围,也不要把中断扫描的结果当成全站结论使用。