关键词筛选工具,一次全站扫描被中断后怎样判断已覆盖范围

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

关键词筛选工具,一次全站扫描被中断后怎样判断已覆盖范围

中断后最可靠的判断不是看进度条停在哪里,而是看扫描日志里有没有记录“每个页面已处理”的完成标记。如果日志只记录了开始时间和总页数,没有逐页或逐批的完成记录,那么已覆盖范围只能按“最后一批成功写入的页面”来确认,不能按工具界面显示的百分比推算。

矛盾现象:进度显示很高,结果却像没扫过

常见情况是扫描被中断后重新打开,界面显示已完成大半,但导出结果里只有少量页面。这时有两种解释都成立:一是工具确实处理了大部分页面,只是结果还没落盘;二是进度数字只代表“已抓取队列”,不代表“已完成分析并写入结果”。

区分这两种解释的关键证据是日志粒度。逐页日志会留下类似 <url, status, timestamp> 的记录,而批次日志只留下 <batch_id, start, end>。前者可以精确圈定覆盖边界,后者只能给出近似区间。

先确认中断发生在哪个阶段

一次全站扫描通常分抓取、解析、筛选、写入四个阶段。中断可能在任何一个阶段发生,而每个阶段对应的“已覆盖”含义不同。

实际动作:打开扫描日志,找到最后一条包含“完成”或“已写入”字样的记录,记下对应的时间戳和页面标识。这个时间点之后的所有页面都视为未覆盖,需要重新处理。这一步的结果直接决定重扫范围是“全站”还是“从某个页面之后”。

用三个证据交叉确认覆盖边界

单一日志行可能因为缓冲或异步写入而滞后,因此需要交叉验证。

  1. 结果表的主键连续性:如果结果表按页面 ID 递增写入,检查最大 ID 与总页面数的比例,并确认该 ID 之后是否存在空洞。存在空洞说明写入不是严格顺序,不能简单按 ID 截断。
  2. 临时文件或中间快照:部分工具会在中断时保留临时文件。检查临时文件的修改时间是否晚于日志最后一条完成记录。如果更晚,说明有部分结果未写入正式表,需要先合并再判断。
  3. 重新扫描一小段已知页面:选取中断点前后各若干页面,用相同规则重新扫描一次,对比结果是否与已有结果一致。一致说明边界清晰;不一致说明解析或筛选规则在中断前后可能发生了变化。

假设一个例子:总页面 1000,日志最后完成记录在第 620 页,但结果表最大 ID 是 580。此时应认为已覆盖 580 页,而不是 620 页,因为第 581 到 620 页可能只完成了抓取,未完成写入。下一步应从第 581 页开始重扫,而不是从第 621 页开始。

旧内容退出场景下的取舍

如果这次扫描的目的是为旧内容退出做筛选,覆盖范围不完整会直接影响退出决策。已覆盖部分可以按原规则判断保留或退出,未覆盖部分不能默认按“未命中”处理,否则可能误退出仍有价值的页面。

可操作的做法是:先对已覆盖部分执行一次筛选,得到初步保留清单;再对未覆盖部分单独扫描,只应用最关键的退出条件,而不是全量规则。这样即使未覆盖部分的结果粒度较粗,也不会因为规则缺失而错误保留或错误退出。

需要核对的是,具体工具是否支持按页面范围重新扫描、是否保留中断前的临时结果,这些信息需要以该工具当前版本的日志说明或实际测试为准,不能假定所有工具行为一致。

什么情况下可以接受近似覆盖

如果退出决策只依赖少量高置信度条件,例如页面是否包含特定链接或是否超过某个更新时间,那么覆盖到大部分页面即可,剩余未覆盖部分可以人工抽查。反之,如果退出决策依赖多条件交叉判断,覆盖不完整会导致结果偏差不可忽略,此时应优先补扫,而不是用近似范围推进。

判断标准是:未覆盖页面在整体中的占比,以及这些页面是否集中在某个目录或模板下。如果未覆盖部分集中在同一类页面,可以单独评估该类页面的退出条件,而不必等待全站补扫完成。

图1 图2

nginx