友情链接工具:一次全站扫描被中断后怎样判断已覆盖范围

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

友情链接工具:一次全站扫描被中断后怎样判断已覆盖范围

先看中断发生在哪一步,再看工具是否留下了可续跑的记录。如果扫描是分批执行、每批都有独立结果文件或日志,那么已覆盖范围基本等于“最后一批完整结束的位置”;如果结果只写入一个内存状态、中断后没有任何落盘记录,那么这次扫描通常只能当作没跑完,不能凭页面上的部分结果推断覆盖率。

先分清三种中断:网络、进程、规则

同样是“扫描到一半停了”,后续判断完全不同。把中断原因分开,才能决定是续跑、重跑还是放弃这次结果。

假设某次扫描计划处理 2000 个页面,每 100 个一批,日志显示第 12 批完成、第 13 批开始后中断。那么可确认覆盖的是前 1200 个页面;第 13 批的 100 个页面处于“部分处理”状态,最稳妥的做法是把这一批整体重跑,而不是只补其中失败的那几条。这个动作的结果会直接影响下一步:如果部分批次被当作完整批次,后续的链接缺口统计就会偏低,你会误以为某些页面没有友情链接,实际只是没扫到。

用日志和批次边界确认“最后完整位置”

判断覆盖范围,最可靠的依据不是页面上的进度条,而是日志里的批次边界和完成标记。进度条可能按页面数估算,中断时显示的数字未必对应已经落盘的结果。

可以按下面的顺序核对:

  1. 找到最后一条“批次完成”或等价的状态记录,记下它的批次编号和结束时间。
  2. 检查该批次的结果文件是否完整,比如条目数是否等于计划数、有没有截断的末尾行。
  3. 查看中断批次是否有部分写入。如果结果文件按批追加,末尾可能残留半批数据,需要单独隔离。
  4. 确认去重逻辑:续跑时如果工具按 URL 去重,重复处理已完成页面通常不会污染结果;如果按行追加而不去重,续跑后会出现重复记录,需要先清理再统计。

这里有一个容易踩的边界:日志显示“已处理 1500 个页面”,但其中可能包含重试和跳过的页面,实际唯一 URL 数可能少于 1500。规模化扫描时,重试、跳转和重复入口会让“处理数”和“覆盖数”不一致,不能直接画等号。

续跑、重跑还是放弃:按证据选

三种取舍各有前提,不存在通用最优解。

保留并续跑适用于:工具有明确的断点记录、结果按批落盘、去重机制可靠。这时续跑成本最低,但前提是中断原因已经排除,否则会在同一位置再次中断。

整站重跑适用于:结果只存在于内存、日志不足以还原批次边界,或者中断原因涉及规则变更。重跑能保证口径一致,代价是时间成本,并且如果目标站有频率限制,短时间内重跑可能再次触发中止。

放弃本次结果适用于:中断发生在早期、已完成比例很低,或者中断原因不明且无法复现。此时继续修补的收益低于重新开始。

一个判断动作是:先只重跑中断的那一批,观察是否稳定通过。如果单批能稳定完成,说明问题在批次规模或偶发网络,可以继续按批续跑;如果单批仍然失败,说明问题在规则、认证或目标站策略,继续续跑只会重复消耗,应该先修复根因再决定是否重跑全站。

样本成立不代表全站成立

个别页面扫描成功,不能推断全站覆盖正常。常见例外包括:栏目页和详情页的模板不同,导致链接区域解析规则只在部分模板上生效;分页或懒加载内容在批量扫描时未被触发;部分子域或目录被规则排除。

因此,续跑或重跑后,除了看总数,还应抽查几类结构不同的页面,确认它们的结果口径一致。如果发现某一类页面系统性缺失,说明问题不在中断本身,而在扫描规则覆盖不到,这时调整规则比反复重跑更有效。具体工具是否支持规则调整、断点续跑和按批导出,需要以你实际使用的版本文档为准,不同工具的能力差异很大,不能照搬。

图1 图2

nginx