搜索抓取

分页与列表页翻页:深页 URL 在翻页序列中的发现核对

列表页翻页是很多站点主要的 URL 发现入口,深层页面能否入队往往取决于翻页序列是否连续。本文对比静态分页、下一页链接、JS 加载与无限滚动的可抓取差异,说明翻页常见的断裂位置,并给出用抓取日志、入口反查和 HTML 站点地图核对深页可达性的具体做法。

搜索抓取

分页与列表页翻页:深页 URL 在翻页序列中的发现核对

很多站点的 URL 发现主力并不是 Sitemap,而是列表页和它的翻页。首页、栏目页、标签页把一批又一批链接交出去,蜘蛛顺着下一页往前走,深层页面才有机会入队。翻页结构出问题,往往不是某个页面抓不到,而是整段序列从某一页开始断掉。

翻页链接的几种写法

同样是翻页,蜘蛛看到的可抓取性差别很大。

  • 静态 href 分页:每页都有形如 /list/page/3/ 或 ?page=3 的真实链接,蜘蛛可以并行抓取,也可以跳跃式取用。
  • 只保留“下一页”:页面只有一条下一页链接,蜘蛛必须逐页前进,越靠后越难被发现,中断风险也更高。
  • JS 点击加载:链接由脚本绑定,HTML 里没有 href,蜘蛛通常拿不到后续入口,除非有可访问的静态回退。
  • 无限滚动:内容靠接口追加,URL 不变化,蜘蛛看到的基本只有第一屏。

翻页序列容易断在哪里

核对时优先看这几个位置。第一,页码跳转是否留了过渡:从第 3 页直接跳到第 10 页,中间的 URL 如果只在这两页之外出现,就会成为缺口。第二,分页链接是否在首屏 HTML 中,还是滚动后才插入 DOM。第三,翻页是否依赖 POST 或带会话参数的接口,这类地址通常不适合作为抓取入口。第四,空结果页和异常页是否返回 200,让蜘蛛把无内容页当成有效序列继续走。

核对方法

  1. 抓取日志里按分页路径前缀筛选,看第 1 页到第 N 页的抓取是否连续,哪一页开始没有记录。
  2. 随机抽几个深页 URL,反查站内有哪些入口能到达,确认是否只靠翻页这一条路。
  3. 用 HTML 站点地图页或分类索引页给深页补一条更短路径,减少对翻页序列的依赖。
  4. 检查分页链接的可点击性与 href 是否一致,避免脚本改写后蜘蛛拿到的是空值或 #。
翻页是发现路径,不是内容本身。它的作用是让 URL 进入队列,而不是靠页面上堆更多链接。

分页与抓取资源的取舍

分页往往会产生大量近似页面,尤其是排序、筛选、时间范围参数组合出来的地址。这类页面本身价值有限,却会占用抓取频次。常见的处理是:只保留主序列可分页,参数组合页用规范链接或 robots 规则收敛入口;对确实需要被发现的深页,用更稳定的入口替代参数翻页。

服务器响应与翻页体验

翻页请求通常较为密集,响应慢或偶发 5xx 时,蜘蛛容易降低这一段的抓取节奏,甚至中断当前序列。核对时可以看分页路径的响应码分布与平均响应时间,确认没有出现连续超时。稳定返回、内容完整,比追求单页加载速度更重要。

整体思路并不复杂:让翻页序列尽量短、链接尽量真实、入口尽量多元。做到这三点,深层 URL 被发现只是时间问题,并不需要额外的技巧去推动。