自动化宣传软件:一次全站扫描被中断后怎样判断已覆盖范围

📍 WDQWDWQD987AAAAA:216.73.216.137
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /0ec4e0e47901.html
📄

自动化宣传软件:一次全站扫描被中断后怎样判断已覆盖范围

先给结论:中断后的覆盖范围不能靠“扫到哪一页”来判断,而要靠任务日志里的边界记录。如果软件在中断前写入了可续跑的检查点,你就能精确知道覆盖到哪里;如果只留下进度百分比或最后访问时间,覆盖范围只能估算,且必须重新抽样验证。两种情况下后续动作完全不同,下面分开说。

有检查点记录时,覆盖范围可以直接核对

支持断点续跑的自动化宣传软件,通常会在扫描过程中把已完成的单元写入一个持久化记录,比如已处理的URL清单、已抓取的页面指纹或分片编号。中断后重新打开任务,如果软件能显示“已完成N项、待处理M项”,并且这个N与日志中的最后一条完成记录一致,那么覆盖范围就是确定的。

判断依据不是进度条,而是三个可核对的证据:

三个条件都成立,才可以把已完成部分当作有效覆盖。此时的实际动作是:只对未完成部分重新发起扫描,不要全量重跑。这样做的影响是,后续比对结果不会被重复数据污染,同时节省的等待时间可以用于人工抽查已完成部分的边界样本。

一个假设的核对例子

假设总清单有1200个页面,日志显示已完成到第740项,检查点文件记录的最后一项是第740项对应的URL。重新扫描时从第741项开始,完成后把两段结果合并。合并前先抽查第735到745项,确认第740项前后没有遗漏或重复。如果抽查发现第740项实际未被处理,说明检查点写入有延迟,覆盖范围要向前回退到最后一个确认完成的项。

只有进度百分比时,覆盖范围只能估算并验证

很多工具在中断后只保留一个百分比或“最后运行时间”。这种情况下,百分比本身不能作为覆盖依据,因为它可能按页面数、字节数或任务步骤计算,中断瞬间的显示值往往不是已完成量。你需要换一种方式确定范围。

可用的替代证据包括:

  1. 导出中断前生成的中间结果文件,统计其中的唯一标识数量;
  2. 查看原始输入清单,标记出中间结果里出现过的项;
  3. 对未标记的项按位置分层抽样,比如按清单顺序每隔一定数量取一项,手动触发单页检查。

如果抽样发现未标记项中有一部分实际已被处理,说明中间结果不完整,覆盖范围被低估;如果已标记项中有内容缺失,说明覆盖范围被高估。两种偏差都会影响后续判断,所以抽样至少要覆盖清单的首、中、尾三段。

选择依据:什么时候可以接受估算

如果这次扫描只用于发现明显异常,比如失效链接或标题重复,估算加抽样通常够用。如果扫描结果要用于对外报告或批量修改,估算不够,必须回到有检查点的模式重跑,或者把任务拆成更小的批次,每批完成后立即落盘。这里的取舍是时间与可信度:接受估算意味着后续要花时间验证,追求确定则要在任务配置上做调整。

多个角色对覆盖范围有分歧时,把分歧转成核对项

运营、技术、内容几个角色对“扫了多少”常有不同理解:运营看的是界面上显示的进度,技术看的是日志文件,内容看的是导出的结果条数。分歧本身不说明谁对,只说明大家引用了不同的证据源。处理方式是把每个角色的说法转成一条可核对的断言。

例如:

每条断言指定一个证据来源和核对人,核对完成后分歧自然收敛。实际动作是先冻结当前输出文件,再逐条核对,避免核对过程中任务被重启导致证据变化。核对结果决定下一步是补扫、重扫还是直接使用。

例外与适用条件

以上判断成立的前提是:原始输入清单在中断前后没有被人为修改,且输出文件的写入没有被其他任务覆盖。如果清单在中断期间被增删,覆盖范围要按修改后的清单重新计算。如果输出目录被其他批次写入,需要先按任务标识或时间戳分离数据,再判断覆盖。

另外,抓取量或处理量归零不一定代表覆盖为零,可能是输出路径变更、权限问题或任务被调度器暂停。遇到这类现象时,先检查任务状态和输出目录,再下结论。必要时应联系工具提供方确认其检查点机制的具体行为,因为不同工具的落盘时机和粒度并不相同。

最终判断标准只有一个:能否用可核对的记录复现“哪些项已完成”。能复现,覆盖范围就是确定的;不能复现,就只能估算,并把验证成本计入下一步计划。

图1 图2

nginx