先给结论:自动导出漏掉分页,通常不是导出按钮坏了,而是导出范围、时间窗口和翻页方式三者没有对齐。检查完整性时,先确认导出任务覆盖了多少页、每页多少条、实际拿到多少条,再用独立抽样验证中间页是否真的缺失。只有确认缺失发生在分页环节,才值得调整导出设置;如果缺失来自查询结果本身波动,改导出参数往往无效。
分页遗漏和结果波动看起来都是条数变少,但处理方向完全不同。可以按下面这组证据区分:
实际动作:先记录本次导出任务的页数上限、每页条数和实际条数三个值。如果实际条数正好卡在某个整数边界,优先怀疑范围设置;如果条数接近预期但中间有空洞,优先怀疑翻页中断。这个判断结果决定下一步是改参数还是改抓取节奏。
三种取舍各有适用前提,不必都选。
保留原任务,只补缺失分页。适用于缺失位置固定、总量不大、且查询结果在短时间内稳定的情况。做法是记录缺失页的起止条数,单独重跑该区间,再与主任务合并。前提是两次查询之间结果没有明显变化,否则合并后会出现重复或错位。
改写分页参数。适用于缺失随页数增加而增多的情况。常见改法是缩小每页条数、增加总页数上限,或改用按条数区间而不是按页码推进。缩小每页条数会让单页更轻,翻页中断的概率下降,但总请求次数上升。这里要权衡的是:请求次数增加带来的时间成本,是否低于漏页造成的补查成本。
退出自动导出,改人工分段。适用于结果本身波动大、或自动任务反复在同一位置失败的情况。人工分段虽然慢,但每段可以立刻核对条数,发现异常马上停。前提是查询量不大,否则人工成本会超过收益。
假设某次导出设定为最多 50 页、每页 40 条,理论上限 2000 条,实际只拿到 1640 条。差值 360 条,接近 9 页。这时不要直接重跑全部 50 页,而是先取第 10 页、第 25 页、第 40 页各抽一条,回查这些条目是否出现在已导出数据里。如果第 25 页的条目缺失,而第 10、40 页都在,说明缺失集中在中间段,可能是翻页到中途被截断。下一步只补跑中间区间,而不是改所有参数。这个例子的数字仅用于说明比较方法,实际页数和条数以你的任务设置为准。
请求量或条数下降,不能单独证明分页处理正确或错误。还有几种合理解释:
因此,判断完整性不能只看总数,还要看缺失是否可定位、是否可复现。可定位且可复现的缺失,才指向分页环节。
建议每次导出后执行三步:第一步,记录任务参数和实际条数;第二步,抽取首、中、尾三页各若干条,回查是否存在于导出结果;第三步,对缺失区间单独补跑并标记来源。这样做的结果会直接影响下一次导出设置:如果缺失总在中间段,就缩小每页条数;如果缺失总在末尾,就检查页数上限;如果缺失位置每次都不同,就考虑结果波动,而不是继续调参数。
需要核对具体工具当前支持的导出范围、页数上限和去重规则时,以该工具页面内的实际说明为准,不同工具的默认值并不一致。检查完整性的核心不是追求零误差,而是让每一次缺失都能被定位、被解释、被决定是补跑还是放弃。