先给结论:不要直接补抓遗漏的那一页,而要先判断遗漏是“分页边界问题”还是“数据源本身缺失”。前者可以通过改导出条件修复,后者补抓只会得到重复的空结果。最小动作是拿一个已知总量的样本做对账,而不是继续扩大抓取范围。
自动导出遗漏分页,通常只有两类原因。第一类是分页边界问题:导出工具按固定条数切页,最后一页不满、或者页码从 0 开始与从 1 开始混用,导致首尾各丢一页。第二类是数据源缺页:对方页面本身就没有返回那一页的数据,或者需要登录、验证码才能看到。
区分方法很简单。假设某次查询理论上有 5 页,每页 20 条,但导出只有 4 页共 73 条。如果第 5 页应该还剩 27 条却完全没出现,更可能是边界丢页;如果第 4 页只有 13 条且第 5 页请求返回空,更可能是数据源缺页。这两种情况的处理方向完全不同,先定性再动手。
保留当前导出结果适合你只需要趋势判断、不需要逐条核对链接的情况。前提是你接受“样本不完整”,并且不会拿总条数当准确值。此时可以在报告里注明导出范围和已知缺口,避免下游把 73 条当成全部。
改写导出条件后重跑适合边界丢页。常见改法是调整每页条数、显式指定起止页码、或改用按时间区间分段导出而不是按页码翻页。前提是你有权限修改查询参数,并且能重复执行同一查询做对比。改写后要用同一个已知样本验证,确认缺口消失再继续。
退出自动导出、改人工抽查适合数据源缺页且你缺少完整权限的情况。此时继续自动跑只会反复拿到同样的残缺结果,投入产出比下降。最小动作是固定抽查几个关键页面,记录“哪些页拿不到”,而不是假装数据完整。
页数会骗人,总量对账更可靠。具体做法:先用一个你确定能数清的样本(比如某个已知有 40 条链接的页面),分别用自动导出和人工计数,比较两者条数。如果自动导出得到 38 条,缺口就是 2 条,再去看缺的是首尾还是中间。
对账时注意一个反常现象:条数对得上,不代表内容对得上。可能某一页被重复计入、另一页被跳过,总数恰好持平。所以除了比总数,还要比去重后的唯一标识(如链接地址)数量。去重后数量小于原始条数,说明存在重复;去重后数量等于原始条数但小于人工计数,说明存在遗漏。
假设某次友情链接查询按每页 50 条导出,共导出 3 页:第 1 页 50 条、第 2 页 50 条、第 3 页 0 条。表面看是 100 条。但如果你知道目标页面大约有 120 条链接,那么第 3 页返回 0 就很可疑——它可能是真的没有数据,也可能是分页参数在最后一页失效。
此时的动作是:把每页条数改成 30 再跑一次。如果这次得到 4 页共 120 条,说明原导出在第 3 页边界处丢了数据,属于边界丢页;如果改成 30 后仍然是 100 条,说明缺口不在分页参数,需要检查权限或数据源本身。这个例子里的数字只是说明比较方法,不代表任何工具的实际行为。
抓取量或导出条数归零,不能单独证明“处理正确”或“没有友情链接”。它还有几种合理解释:请求被限流、参数写错、目标页面改版、或需要登录才能看到内容。同样,某次导出条数比上次少,也不能直接推断对方删了链接,可能是分页条件变了。
因此,完整性检查的结论应该限定在“在本次导出条件下,拿到了哪些、缺了哪些”,而不是“对方一共有多少条”。如果你缺少完整数据或权限,能执行的最小动作是对已知样本做一次对账,并记录缺口位置;不能推出的是对方的真实链接总量,也不能据此判断链接质量或对方是否在维护链接。
把缺口位置和导出条件一起记下来,下一次查询时先复现这个缺口,再决定是保留、改写还是退出自动导出,这样每一步都有依据,而不是靠猜。