先给结论:扫描被中断后,不能凭“进度条百分比”或“已发现URL数量”直接认定覆盖范围。更可靠的做法是把中断前的抓取日志、已访问URL清单和待访问队列分开保存,用“已实际抓取并成功解析的页面”作为已覆盖口径,再通过抽样复抓和站点结构对照,估算未覆盖部分。下面用一个假设情境串起判断过程。
假设某站点有约2万个可访问URL,你使用一款SEO优化软件做全站扫描,任务进行到约40%时因网络或本地资源问题中断。软件界面可能给出三个数字:已发现URL数、已抓取URL数、已解析URL数。这三个数字含义不同,不能混用。
因此,判断覆盖范围的第一步,是把中断前的任务日志或导出文件按上述三类分别统计。如果软件只提供一个笼统的“完成进度”,就需要回到日志或导出清单中自行区分。
假设日志显示已成功解析8000个URL。这个数字是否可信,取决于中断前是否存在大量软404、超时或重定向链。可以从中随机抽取50至100个已解析URL,用同一软件或另一款工具单独复抓,记录响应状态、最终URL和页面标题是否与日志一致。
如果抽样中超过少量样本出现状态码变化、最终地址跳转或标题为空,说明“已覆盖”里混入了无效页面,实际可用于分析的范围要打折。反之,如果抽样结果稳定,可以把已解析URL清单作为后续分析的基线。这个动作的结果直接决定下一步:是重新扫描,还是只补抓未覆盖部分。
中断后真正需要回答的是“还剩哪些没扫”。与其猜测剩余百分比,不如按站点结构分区核对。常见分区依据包括:目录层级、栏目模板、分页规则、参数类型、语言或地区子目录。
假设某站点“/product/”目录下有6000个URL,而已解析清单中该目录只出现800个,同时“/blog/”目录覆盖接近完整,那么未覆盖范围很可能集中在产品页模板或分页规则上。此时应检查该分区的抓取规则、分页参数和入口链接,而不是简单重启全站任务。
复用已覆盖数据需要满足几个条件:中断前任务没有修改抓取规则;站点在中断期间没有大规模改版或批量发布;已解析URL清单中包含完整的响应状态和最终URL;抽样复抓结果稳定。满足这些条件时,可以只对未覆盖分区做补充扫描,再把两份清单合并去重。
如果中断前曾调整过抓取深度、排除规则或User-Agent,或者站点在中断后更换了模板、批量修改了内链,那么已覆盖部分和后续补抓部分可能基于不同条件,直接合并会产生偏差。此时更稳妥的做法是重新执行一次完整扫描,或至少对受影响分区重新扫描。
完成上述核对后,通常会落到三种动作之一:
无论选择哪种,都建议在任务结束后立即导出并保存原始日志、已解析URL清单和抓取规则快照。下次中断时,这些文件就是判断覆盖范围的依据,而不是依赖软件界面上的一个进度数字。具体某款工具的日志字段、导出格式和断点续抓能力各不相同,使用前需要以该工具当前版本的说明为准。