先给结论:不要只看导出文件的总行数或“已完成”提示,而要用可独立复算的锚点验证分页覆盖。假设一个情境:你准备下线一套旧内容系统,需要把仍有价值的外链记录迁走,工具自动导出却在中途跳过了若干分页。此时应把导出拆成“页级证据”和“记录级证据”两层检查,再决定补抓、重跑还是缩小范围。
自动导出遗漏分页通常有三种可区分原因。第一种是工具按页码顺序抓取时,中间某页请求失败但任务继续;第二种是结果集在导出过程中发生了变化,导致后续页码整体前移;第三种是工具对单次导出的记录上限做了截断。三者的证据不同:失败页往往留下请求错误或空页;结果集变化会表现为相邻页之间出现重复记录或缺口;上限截断则常见于最后一页之后仍有同源记录,但导出已停止。
因此,拿到导出文件后先不要合并去重。保留原始分页标记,逐页记录页码、该页记录数、首条与末条记录的稳定标识。稳定标识可以是外链来源页的规范化地址,或工具提供的记录编号。这个动作的结果会直接影响下一步:如果只是个别页失败,补抓这些页即可;如果相邻页出现重复,说明结果集在漂移,需要固定查询条件后整体重跑。
完整性不能靠“总行数看起来合理”来判断。更可靠的做法是建立抽样锚点:从查询结果中按固定规则取出若干条记录,记录它们出现在第几页,再在导出文件中反查这些锚点是否都在,且页码归属是否一致。
假设导出共 20 页,你从第 1、7、13、19 页各取两条记录作为锚点。若第 7 页的两条锚点全部缺失,而第 13 页锚点正常,最可能的问题是第 7 页抓取失败或该页在导出时被跳过。此时补抓第 7 页并核对相邻页边界,比直接重跑全部 20 页更省时间。如果多个中段锚点都缺失,则更可能是结果集漂移或上限截断,应回到查询条件层面处理。
旧系统或旧合作关系退出时,并不需要把所有历史外链都完整迁走。先按“是否仍有价值”缩小范围,再检查完整性,能显著降低分页遗漏带来的返工。可用的判断依据包括:链接来源页是否仍可访问、链接是否仍指向有效目标、该来源是否属于即将停止维护的域名。
实际操作上,可以先导出与待退出对象直接相关的子集,而不是全量历史记录。缩小范围后,结果集页数减少,分页遗漏更容易被发现和复算。这个动作的结果是:如果子集内锚点完整,就可以进入迁移或留存决策;如果子集内仍有缺口,再决定是否扩大查询范围。不要因为全量导出不完整,就默认所有子集都不可用。
补抓遗漏页后,需要把新增记录与原有导出合并,并再次用同一组锚点复算。确认可以停止的条件不是“没有报错”,而是:所有预设锚点都能在合并结果中找到,且相邻页边界没有出现无法解释的重复或缺口。
如果补抓后锚点仍然缺失,而你又无法确认是工具限制还是数据本身已不存在,应把该缺口标注为“未验证”,而不是当作已完成。对于即将退出的旧内容,这个标注足以支持“保留已知有效部分、放弃无法验证部分”的决策。
为了让下一次外链查询导出可比较,建议在导出文件之外单独保存一份检查记录,内容包括查询条件、导出时间、页数、锚点清单、缺失页码及处理动作。这样当旧系统再次调整或合作关系再次变化时,你能快速判断是同一类分页问题,还是新的数据变化。具体工具是否提供分页导出、断点续传或记录编号,需要以你实际使用的工具说明为准;在未核对前,不要假设某个按钮或入口一定存在。
最终判断标准很简单:锚点能复算、缺口能解释、留存范围能支撑退出决策,这次自动导出就可以视为足够完整;否则应先补抓或缩小范围,而不是直接进入迁移。