外链检查工具:一次全站扫描被中断后怎样判断已覆盖范围

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

外链检查工具:一次全站扫描被中断后怎样判断已覆盖范围

先给结论:中断后不要只看进度百分比,也不要凭“抓取量归零”就认定扫描结束。更可靠的做法是回到扫描日志和结果导出,用“已产生外链记录的目标URL数量 ÷ 站点可枚举URL总数”估算覆盖比例,再决定是补扫剩余部分还是整站重跑。进度条只反映工具内部任务状态,结果表才反映实际拿到了什么。

矛盾现象:进度停在半途,结果却像已经完整

全站扫描被中断时,常见两种相反的表现。一种是进度条停在中段,但结果列表已经出现大量域名,看起来“差不多够了”;另一种是进度接近尾声,结果行数却很少,像是工具没抓到东西。这两种表现都容易让人误判覆盖范围。

下面两个解释都能同时成立,需要靠证据区分:

区分二者的关键证据是:结果表里是否存在与日志时间戳对应的、按处理顺序排列的目标URL。如果日志显示处理到第N个URL,而结果表里也能找到这第N个URL对应的记录,说明是增量落盘;如果日志到了第N个却找不到对应记录,更可能是汇总式写入,需要重跑。

判断覆盖范围前,先确认三样东西

在动手估算之前,先确认你手上确实有这三类信息,缺一样都会让估算失真。

  1. 本次扫描的目标URL清单。它来自站点地图、站内链接爬取或手动导入。没有这份清单,就无法知道分母是多少。
  2. 带时间戳的运行日志。日志能告诉你中断发生在处理第几个URL、是否报错、是否跳过某些路径。
  3. 可导出的结果表。结果表要能按目标URL去重,否则同一页面被多次抓取会虚增覆盖。

如果工具只提供进度百分比而不给日志和结果导出,那么中断后最稳妥的动作是重新扫描,而不是猜测覆盖范围。因为缺少可核对的中间状态,任何估算都只是印象。

用目标URL去重计数估算覆盖比例

假设一次扫描计划处理1000个目标URL,中断后结果表里有420条去重后的目标URL记录,日志显示最后处理到第450个URL。此时可以这样判断:

如果结果表只有80条,而日志已到第450个,差距过大,说明大部分结果没有落盘。这种情况下补扫剩余URL意义不大,因为已扫部分的结果也不完整,应该整站重跑。

这个例子里的数字只是说明比较方法,不是任何工具的真实表现。实际阈值要根据你的站点规模和可接受的重复工作量来定。

两种做法的取舍:补扫剩余 vs 整站重跑

判断完覆盖范围后,通常面临两个选择,各有成立条件和代价。

选择一:只补扫剩余URL。成立条件是结果表与日志基本吻合、已落盘记录可按目标URL去重、且工具支持指定URL范围重扫。代价是可能漏掉已扫页面中因中断而丢失的个别记录,适合站点大、重跑成本高的情况。

选择二:整站重跑。成立条件是结果表明显不完整、日志缺失、或工具不支持断点续扫。代价是耗时和资源翻倍,但结果一致性最好,适合站点规模不大或对完整性要求高的场景。

一个可操作的动作是:先导出当前结果表,按目标URL去重计数,再和日志里的处理位置对比。如果两者差距小于你设定的容忍比例,就补扫剩余;如果差距大,就整站重跑。这个动作的结果直接决定下一步是省时间还是保完整。

中断原因也会影响判断

不同中断原因,对覆盖范围的暗示不同。网络超时或工具进程被杀,通常只影响中断点之后的任务,已落盘部分多半有效。而磁盘写满、导出失败或权限错误,可能让中断前的部分结果也没写进去。遇到后者,即使日志显示处理了很多URL,也要按整站重跑处理。

另外,抓取量归零或请求量骤降,不能单独证明扫描已完成或已正确终止。它也可能来自目标站点限流、工具被防火墙拦截,或任务被调度系统暂停。要结合日志里的错误码和最后一条成功记录的时间来判断,而不是只看数量变化。

图1 图2

nginx