结论先说:自动导出遗漏分页,不一定是软件漏抓,更常见的原因是导出范围被任务参数、分页上限或去重规则截断。要判断完整性,不能只看“导出条数是否等于页面显示总数”,而要把导出文件与分页结构逐层对齐。一个会让这个结论失效的反例是:目标站点本身在导出期间发生了分页重排或内容下架,此时即使导出逻辑正确,前后两次结果也无法直接比对。
分页完整性检查的第一步,是把问题拆成两个层次。漏页指某个页码整体没有进入导出结果;漏行指页码在,但该页里的部分记录缺失。两者的排查方向完全不同。
先做这个区分,是因为后续动作不同:漏页要查任务的分页参数和翻页终止条件,漏行要查字段映射、去重键和过滤条件。把两类问题混在一起,容易反复重跑任务却找不到原因。
不要依赖软件自报的“导出成功”。更可靠的做法是拿导出结果反推分页结构,再与界面上的分页信息对照。假设某次导出得到一个包含页码字段的文件,可以按下面的顺序检查:
这个动作的结果会直接决定下一步:缺口页在界面上也不存在,说明是数据源变化,不是导出缺陷;缺口页存在但被参数排除,说明要调整任务范围后重跑;缺口页存在且参数覆盖,却仍无数据,才需要怀疑导出逻辑本身。
很多看起来像遗漏的结果,其实是分页上限或去重规则在起作用。常见情况有三类:
区分方法是看缺口的分布形态:集中在尾部偏向分页上限,条数偏少但页码完整偏向去重,缺口随机漂移偏向排序不稳定。这一步只是缩小解释范围,不能单独证明某个原因成立,因为三种情况也可能同时出现。
假设某任务导出 12 页、每页 20 条,界面显示共 12 页。导出文件里页码为 1 至 11,第 12 页缺失,总条数 220。此时有两种成立条件不同的解释:
两种解释对应的动作不同:前者要修改结束页码并重跑,后者要记录导出时间点,并在下一次导出时用同一时间口径比对。若不做这个区分就直接重跑,可能得到同样结果,也可能因为源数据继续变化而得到第三种结果。
完整性检查的价值不只在这一次。建议每次导出后保留三样东西:导出时间、实际覆盖的页码集合、每个缺口页码的核实结论。下一次导出时,先用页码集合做差集,再决定是否需要逐页核对。
需要提醒的是,具体软件的分页参数名称、上限值和去重设置位置各不相同,这些信息需要以你实际使用的工具为准进行核对,不能套用其他工具的界面描述。当导出条数、抓取量或某项统计归零时,也不要直接判定为导出正确或数据消失,它同样可能来自过滤条件、权限范围或源站改版,需要结合页码缺口和界面核实结果一起判断。
下一步动作可以很具体:先按页码序列列出缺口区间,再对每个缺口页做一次界面核实,最后根据缺口是否存在于界面来决定改参数重跑还是记录源变化。这样得到的结论,比单看导出总数更接近真实情况。