扫描中断后,不要先看“跑了多少条”,而要先看这次任务有没有留下可复用的中间结果。如果软件把已抓取页面写入本地数据库、缓存或导出文件,你可以从断点继续,覆盖范围基本可信;如果只保存在内存或临时队列里,中断后通常只能重跑,之前那部分进度不能当作有效覆盖。判断的核心不是“扫了多少”,而是“哪些结果被持久化、哪些页面只是被访问过但没有形成可核对记录”。
同样是任务停住,底层状态不一样,能推出的结论也不一样。
这里的关键动作是:中断后先不要立即重跑,先找到任务日志或本地存储文件,确认已写入的记录数量和最后一条成功记录的时间戳。如果日志里能看到断点位置,下一步就是从这个位置继续;如果看不到,才考虑重跑。
很多软件在界面上会显示“已抓取 1,200 个 URL”,但中断后这个数字往往来自内存计数,重启就没了。更可靠的做法是回到可核对记录本身:
假设一次扫描在 8,000 个 URL 时中断,导出文件里有 5,300 条完整记录,最后一条时间戳是 14:32。那么可以合理判断:14:32 之前的 5,300 条覆盖是可用的,之后的 2,700 条只是访问过或未完成,不能直接用于决策。这个判断依赖一个前提:软件在写入时是逐条落库,而不是批量提交。如果软件采用批量提交,最后一批可能部分丢失,此时覆盖边界要往前推一批,具体批次大小需要查软件文档或实测确认。
判断覆盖范围之后,实际要做的决定是继续用这批数据,还是换一种方式重来。
如果导出记录包含状态码、标题、抓取时间,并且断点位置明确,可以保留已完成部分,只对未覆盖的 URL 做增量扫描。动作是:把已完成的 URL 列表导入排除规则或断点续扫功能,然后重新启动任务。这样做的结果是覆盖范围可以逐步补齐,但要注意增量扫描可能改变内部链接的发现顺序,导致部分深层页面仍被遗漏。
如果导出记录只有 URL,没有状态码,但你有站点地图或站内搜索日志,可以把这些作为替代输入,重新限定扫描范围。比如只扫描站点地图中标记为“已发布”的 URL,而不是全站爬取。这样做的前提是站点地图本身完整且更新及时,否则覆盖范围会偏向已提交页面,漏掉未提交但可访问的页面。结果会影响下一步:如果替代输入覆盖了主要栏目,可以继续;如果只覆盖了一小部分,说明需要换回完整扫描。
如果软件没有日志、没有本地存储、也没有断点续扫,而站点规模不大,直接重跑可能是更省时的选择。判断条件是:重跑预计耗时小于排查和修复中断原因的时间。动作是先做一次小范围测试,确认软件在当前权限下能正常完成一个栏目,再启动全站任务。这样做的结果是覆盖范围从零开始,但至少边界清晰。
如果你没有服务器日志、没有数据库权限,只能看到软件界面,仍然可以做三件事来缩小不确定性:
这些动作不能推出“覆盖已经完整”或“缺口一定在某个栏目”,只能帮你决定是否值得继续投入时间。如果缺口比例很大且无法定位断点,退出重跑通常比修补更实际。
扫描中断后,有些信号看起来像证据,其实解释不止一种:
要确认覆盖范围,最终还是要回到可核对记录:有没有状态码、有没有时间戳、断点位置是否明确。缺少这些条件时,最稳妥的做法是把这次扫描视为部分覆盖,只使用字段完整的那部分结果,其余部分重新扫描或换用其他输入来源。