先给结论:如果导出工具把分页结果合并成一个文件,而你在文件里发现记录数明显少于页面显示的总条数,不要立刻断定“漏了”。先按“可复现”和“不可复现”两种条件分开处理:可复现时,检查分页参数与去重逻辑;不可复现时,检查导出时间点与查询条件的漂移。两种做法对应不同的代价,选错方向会浪费大量时间在错误的对象上。
当同一组查询条件、同一时间窗口内重复导出,每次都少同一批记录,这属于可复现遗漏。此时最可能的对象是分页边界处理:工具在翻到第 N 页时,把上一页最后一条当作下一页起点,或者把跨页重复的标识符直接丢掉。
具体动作:先固定查询条件不变,只改每页条数,例如从 20 改成 50 再改成 100,分别导出并记录总条数。如果每页条数变大后遗漏减少,说明问题出在翻页偏移;如果遗漏量不变,说明问题出在去重或筛选条件。
这个动作的结果会直接决定下一步:偏移问题要回到工具的分页参数设置;去重问题则要检查导出文件里是否有两列含义相近的标识被误判为重复。代价是每改一次参数都要重新导出一次,时间成本随页数增加而上升,所以只在可复现时才值得这样做。
如果第二次导出时遗漏的记录换了位置,或者干脆不再遗漏,那问题通常不在分页逻辑,而在两次查询之间条件发生了变化。百度关键词排名查询的结果本身会随地域、设备、时间点波动,导出工具只是把当时看到的结果落盘。
具体动作:在导出前后各记录一次查询条件,包括地区、设备类型、时间范围和排序方式。如果两次导出之间这些条件有任意一项被改动,遗漏就属于正常的结果集差异,不是完整性缺陷。
假设一个短例子:第一次导出用了“全国、PC、近 7 天”,第二次导出时页面默认切回了“全国、全部设备、近 30 天”,两次结果条数不同。这种情况下即使工具分页完全正确,文件条数也会对不上。所以先核对条件,再决定是否继续排查工具。
在动手改任何设置之前,先做一次静态比对。把页面显示的总条数、导出文件的行数、以及文件里唯一标识的数量三者列出来。三者关系比单一数字更能说明问题:
这个判断不依赖任何工具的具体功能,只需要你能看到页面总数和文件内容。做完这一步,再决定是修分页还是修条件,顺序不会反。
很多遗漏之所以难查,是因为只看了条数,没看记录本身。建议在导出文件里保留三个字段:分页序号、导出时间戳、记录唯一标识。分页序号能看出哪一页开始断档;时间戳能对齐两次导出的时间差;唯一标识能判断重复与缺失是不是同一批记录。
如果分页序号连续但唯一标识出现跳号,问题在数据源而不是分页;如果分页序号本身缺了一段,问题在翻页动作。这两个结论指向不同的修复对象,代价也不同:前者需要重新确认查询条件,后者需要调整导出工具的翻页方式。
还有一种情况容易被忽略:页面显示的总条数在导出过程中会变化。百度关键词排名查询的结果集不是静态快照,翻页期间新数据进入或旧数据移出,都会让总条数漂移。这时拿一个变动的总数去要求导出文件完全对齐,本身就不成立。
适用条件是:你能确认总条数在短时间内确实发生了变化,例如两次读取之间间隔较长,或者查询范围覆盖了高波动词。此时正确的做法是固定一个时间窗口,只比较同一窗口内的导出结果,而不是追求跨时间的条数一致。
最后一步动作:把上面判断出的原因写成一行备注,附在导出文件旁边,注明查询条件、导出时间和比对结论。下一次再遇到遗漏时,先看这行备注,能省掉重复排查分页的时间。