先看工具是否留下了可续跑的断点或队列记录。如果有,直接续跑,不必重新扫描;如果没有,就要用抽样核对来估算覆盖边界,而不是凭感觉认定“大概扫完了”。两种做法对应不同的前提,选错会浪费一次扫描配额,或者让后续决策建立在残缺数据上。
全站扫描通常分两步:先抓取页面,再对抓取结果做指标计算。中断点落在哪一步,决定了你该关注什么证据。
区分方法很直接:导出结果后看行数是否接近站点实际可索引页面数。行数明显偏少,偏抓取中断;行数接近但字段大量为空,偏分析中断。这个判断不需要工具提供特殊功能,普通导出就能做。
不少工具在中断后会保留任务状态,允许从上次位置继续。这种情况下最省成本的动作是直接续跑,而不是重新发起一次全站扫描。
实施动作:先确认续跑任务是否沿用同一份URL清单。如果续跑会重新抓取全部页面,那它和重新扫描没有区别,此时不如直接重跑并缩小范围。
结果如何影响下一步:续跑完成后,对比续跑前后的总URL数。如果两次相加仍小于站点地图中的URL数,说明中间有页面被跳过,需要用站点地图做一次差集核对,把缺失的URL单独补扫。补扫范围通常很小,代价可控。
适用条件是:站点结构在两次扫描之间没有大改。如果中断期间你改了栏目路径或加了大量新页面,续跑结果会把新旧结构混在一起,此时更稳妥的是重跑。
没有断点记录时,重新全站扫描往往是唯一能拿到完整结果的方式。但在重跑之前,可以先判断已覆盖范围是否已经够用,避免为了一次决策付出整站抓取的代价。
假设站点有首页、栏目页、文章页三层结构,共若干页面。中断后你只拿到部分结果。可以按层级各抽一小批URL,手动检查它们是否出现在结果中,得到每一层的覆盖比例。这里的关键是分层,而不是随机抽——文章页数量通常占大头,随机抽容易被文章页淹没,看不出栏目页是否漏抓。
实施动作:对每层抽出的URL,记录“在结果中”和“不在结果中”两类,算出各层覆盖比例。
结果如何影响下一步:如果栏目页覆盖接近完整,而文章页覆盖明显偏低,那么基于栏目页做的结构判断可以用,基于文章页做的内容判断不能用。这时可以只补扫文章页,而不是重跑全站。反过来,如果栏目页本身漏得多,整份结果的骨架就不可信,直接重跑更划算。
任务显示“完成”、结果条数不再增长、工具没有报错,这些都不能单独证明覆盖完整。合理的中断可能被工具当作正常结束,尤其是分批抓取时最后一批失败但整体状态仍标记为完成。
同样,结果条数突然归零也可能有多种解释:任务被清空、筛选条件把结果过滤掉了、或者只是当前视图没加载。遇到归零先检查筛选条件和任务列表,再判断是否真的没抓到数据。
一个可用的交叉验证是拿站点地图或已知的少量代表性URL去结果里搜。如果这些确定存在的页面都找不到,覆盖范围就有问题,无论任务状态显示什么。
续跑或补扫的代价是等待时间,但保留了已有结果;重跑的代价是再消耗一次完整抓取资源,换来一份干净但可能重复的结果。选择时问自己一个问题:这次扫描结果要支撑的决策,容不容得下局部缺失?
如果只是看整体趋势、找明显异常页面,局部缺失影响不大,抽样核对后直接用即可。如果要做逐页对比、导出给他人复核,缺失页面会造成误导,此时宁可重跑。具体工具是否保留断点、导出字段有哪些,需要以你实际使用的工具当前说明为准。