隐藏链接检测 - 怎样判断采集是否遗漏

📍 WDQWDWQD987AAAAA:216.73.217.167
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /daacec6643bf.html
📄

隐藏链接检测 - 怎样判断采集是否遗漏

判断采集是否遗漏,核心不是看采集总量,而是把页面上的链接与采集结果逐项对照。具体做法:先固定一个页面快照,再提取该页面全部可跳转链接,逐条与采集库比对,找出只出现在页面、未进入采集结果的链接。遗漏通常出现在动态渲染、分页、条件跳转或链接被隐藏样式遮挡的位置。

先固定判断基准:页面快照与采集结果

没有稳定基准,任何遗漏判断都不可靠。执行时先保存一份页面快照,包含渲染后的完整 DOM,而不是只看初始 HTML 源码。采集结果则导出为链接列表,字段至少包含目标地址和来源页面。两者时间应尽量接近,避免页面更新造成误判。

提取页面全部链接并分类

把快照中的所有可跳转元素提取出来,包括 <a> 标签、按钮触发的跳转、图片链接和表单目标。按可见性分为三类:正常可见、需要交互后可见、被样式隐藏。隐藏链接检测的重点正是第三类,它们可能因 display:none、visibility:hidden、零尺寸或移出视口而未被采集器抓取。

逐条比对,定位遗漏点

把页面链接集合与采集结果集合做差集,得到“页面有、采集无”的列表。对每条遗漏链接继续追问三个问题:它是否由脚本动态插入、是否位于分页或“加载更多”之后、是否需要登录或特定条件才出现。这一步是判断采集是否遗漏的关键,不能只看总量是否接近。

  1. 查什么:遗漏链接的触发条件。
  2. 怎么查:在无交互、点击一次、滚动到底三种状态下分别提取链接,比较差异。
  3. 结果说明什么:若链接只在点击后出现,说明采集未模拟交互;若滚动后才出现,说明采集未触发懒加载。

假设某列表页初始只显示 10 条,点击“加载更多”后新增 20 条链接。如果采集结果只有 10 条,且页面快照在点击后包含 30 条,那么可以判断遗漏发生在交互触发环节,而不是链接本身不存在。

检查采集配置与链接可见性

遗漏也可能来自采集规则本身。检查采集范围是否限定了 CSS 选择器、是否排除了隐藏元素、是否设置了最大深度或最大数量。隐藏链接检测在这里的作用是确认链接是否被规则主动过滤,而不是页面没有提供。

形成可复用的遗漏判断清单

把上述检查固化为清单,每次采集后按顺序执行:保存渲染后快照、提取全部链接、标记可见性、与采集结果做差集、对遗漏项验证触发条件、核对采集规则。只有差集为空,或每条差集都能解释为有意排除,才能判断采集没有遗漏。若差集存在且无法解释,应优先检查脚本渲染与交互模拟,而不是直接调整采集数量。

下一步:选取一个已知包含隐藏链接或动态加载链接的页面,按上述清单跑一遍,记录差集与触发条件,再据此修改采集配置。

图1 图2

nginx