先给结论:不要只看导出任务是否显示“成功”,而要拿导出文件里的记录数与查询结果自身的分页总数做一次对账。对账对不上时,优先怀疑分页边界,而不是数据源本身。具体做法是:把导出结果按页码或主键排序,检查首尾页、每页条数和相邻页衔接处,任何一处缺口都说明这次导出不能直接用于后续判断。
用爱站SEO查询批量查看一批域名或关键词时,自动导出常被当成一次动作:点导出、等完成、拿文件。矛盾现象就在这里——任务状态正常,文件也能打开,但记录数比预期少。它可能来自两种完全不同的原因。
第一种解释是分页边界问题。导出程序按页抓取,页与页之间如果按偏移量翻页,而结果集在抓取过程中发生了顺序变化,就可能出现某条记录被跳过、某条被重复。第二种解释是数据源侧的限制,比如单次查询能返回的结果上限、筛选条件本身就把一部分记录排除在外。两者表现相似,处理方式完全不同:前者要改导出方式,后者要改查询条件。
要区分上面两种解释,可以看三组证据,它们比“总数少了多少”更有判断力。
需要提醒的是,记录数变少本身不能单独证明导出处理正确,也不能单独证明数据源有问题。抓取量或某项统计归零,还可能是筛选条件、时间范围或权限变化造成的,必须结合缺口位置一起看。
确认存在遗漏后,通常有两种做法,选择取决于缺口规模和后续用途。
做法一:缩小单次范围,分批导出。把一次大查询拆成多个小范围,比如按字母段、按时间片或按结果集切片,每批单独导出并即时核对记录数。代价是操作次数增加,需要自己维护批次清单。适用条件是缺口分散、总量大,或结果集在导出期间可能变化。
做法二:保留原文件,定点补抓缺失页。只对确认缺口的页码重新导出,再与原文件合并去重。代价是合并环节容易引入重复,需要按主键去重。适用条件是缺口集中在少数页、总量不大,且能稳定复现同一查询条件。
一个注明假设的短例子:假设某次查询显示共 20 页、每页 50 条,导出文件只有 940 条。若缺口集中在第 7 页和第 8 页交界处,并伴随两条重复记录,那么按做法二补抓这两页、再按主键去重,通常比全量重导更省事;若缺口散布在十几页且每次重导缺失位置都不同,就应改用做法一,把范围切小到能一次核对完。
无论选哪种做法,导出后都建议做同一个动作:给文件加一列页序号或按主键排序,然后检查三件事——总记录数是否等于各页条数之和、相邻页首尾是否衔接、主键是否唯一。这个动作的结果直接决定下一步:
如果使用的是具体品牌的查询与导出功能,其分页上限、导出字段和去重规则需要以该工具当前实际说明为准,不要凭印象假设。对账逻辑本身与工具无关,换一个查询工具同样适用。
自动导出省的是操作时间,不是核对时间。把“记录数对账 + 缺口定位 + 主键去重”作为导出后的固定步骤,才能在拿到文件的第一时间判断它能不能用。下一次导出前,先想清楚这次结果准备支撑什么判断;如果判断依赖完整覆盖,就不要跳过对账这一步。