先给结论:中断后不要从“跑到第几条”推断覆盖范围,而要从扫描日志里找出最后一条被完整处理并写入结果的记录,再核对它之前的数据是否已落盘。接下来只有两条路可选——要么从断点继续补扫,要么整站重扫。选哪条,取决于日志能否证明“已完成部分”与“结果文件”一一对应。下面的情境是假设的,用来演示判断过程。
假设你让一款搜索引擎排名软件扫描一个约 4000 条 URL 的站点,任务在界面显示 62% 时被浏览器关闭或进程终止。此时你手上有三样东西:一份导出结果、一份运行日志、以及软件自身的进度显示。这三者对“已覆盖范围”的说法往往不一致,必须逐一验证。
进度百分比是最不可靠的证据。它可能按已提交的 URL 数计算,也可能按已接收响应的 URL 数计算,还可能在等待重试时提前计数。62% 既不等于 2480 条成功抓取,也不等于这些记录已经写入导出文件。
判断覆盖范围的核心动作,是把日志里的完成记录与结果文件里的记录做一次交集核对。具体做法:
如果日志最后一条完成记录能在结果文件中找到,且往前抽查连续,那么“已完成部分”是可信的,断点续扫有依据。如果日志显示完成、结果文件里却没有,说明写入环节可能落后于抓取环节,此时断点位置不可信,续扫会漏掉一段。
选择一:从断点继续补扫。成立条件是日志与结果文件能对应上,且软件支持按 URL 清单或序号范围重新发起任务。代价是你需要额外准备一份“未覆盖 URL”清单,并且要接受两次任务的数据时间戳不一致——如果站点在这期间有改动,前后两段结果的可比性会下降。
选择二:整站重扫。成立条件是站点规模不大、抓取预算充足,或者你无法确认断点可信。代价是重复消耗请求额度与时间,但换来的是同一时间窗口内的完整快照,后续做对比分析时口径统一。
取舍的关键不在于哪种更省事,而在于你拿这批数据做什么。如果只是排查一批已知问题页面,断点续扫够用;如果要拿扫描结果做全站趋势对比,整站重扫更稳妥。
有几个容易误判的信号,需要单独说明:
要排除这些解释,最直接的动作是随机抽取若干条结果记录,用浏览器或命令行实际访问对应 URL,确认状态码与软件记录一致。抽查发现偏差,说明结果文件的可信度存疑,此时应放弃断点续扫。
核对完成后,你会得到一个明确结论:断点可信,或断点不可信。这个结论直接决定下一步——可信则生成未覆盖清单并补扫,不可信则整站重扫。无论走哪条路,都建议在任务开始时开启逐条写入或定期落盘,让下一次中断时日志与结果文件仍然对得上。具体某款软件是否支持断点续扫、日志粒度多细、写入是实时还是批量,需要以你所用版本的说明为准,不同工具差异很大。
最后提醒一点:覆盖范围判断的是“扫到了哪些 URL”,不等于“这些 URL 的排名数据可用”。抓取成功与排名数据有效是两件事,前者解决完整性,后者还要看数据来源与时间戳,这属于另一层核对。