搜索抓取

分页链接与蜘蛛抓取:列表页要翻到第几页才够

列表页是站内 URL 发现的主干道,而分页链接决定了蜘蛛能沿列表走多深。本文拆解独立地址、数字分页、加载更多、无限滚动四种分页形态的可抓取性,说明深层分页拿不到抓取资源的原因,并给出分页截断、筛选参数叠加、地址不稳定三个常见坑的检查与处理思路。

搜索抓取

分页链接与蜘蛛抓取:列表页要翻到第几页才够

站内大部分新 URL 不是从首页直接暴露的,而是藏在列表页、分页、筛选结果里。分页链接的质量,基本决定了蜘蛛沿着列表往下走的深度。这篇文章只讨论一件事:分页这一环怎么影响 URL 发现。

列表页是 URL 发现的主干道

典型的电商或内容站结构是:首页到频道页,再到列表页,最后到详情页。详情页数量往往上万,入口却只有几十个列表页。蜘蛛能不能把这些详情页找出来,取决于列表页给它留了多少条可走的路。

列表页一般承担两个任务:把当前页的详情页链接交出去,以及把「下一页」的地址交出去。第二个任务经常被忽略,结果是第一页被抓了,第二页之后的 URL 迟迟不出现。

分页链接的几种形态

  • 独立地址:/list/page/2/ 或 /list?page=2,每个分页都有稳定 URL,最容易被抓。
  • 数字分页:页面底部列出 1 2 3 一直到 10,超过部分用省略号,深处页面需要额外入口。
  • 「加载更多」按钮:点击后由 JS 追加内容,首轮 HTML 里可能只有第一批数据。
  • 无限滚动:滚到哪里加载到哪里,地址栏通常不变,蜘蛛无法把内容对应到独立 URL。

判断标准很简单:把页面 HTML 抓下来,禁用 JS,看分页地址是否写在 a 标签的 href 里。只有点击事件、没有 href,蜘蛛基本走不过去。

蜘蛛为什么不会一直往下翻

即使链接都在,越深的分页拿到的抓取资源越少。原因不复杂:

  • 第 5 页之后的内容与前面高度相似,重复度高;
  • 深层分页往往排序靠后,页面自身权重低;
  • 抓取预算有限时,蜘蛛优先保证新内容和重要路径。

所以现实目标不是让蜘蛛抓完所有分页,而是保证关键详情页有一条稳定、短的可达路径。如果某批内容只能从列表第 30 页进入,那它被发现的概率本来就不高,应该考虑用其他入口补上。

三个常见的坑

一、分页链接被截断

很多模板只输出前 10 页,之后就没有「下一页」了。这时第 11 页之后成了半孤岛:用户能从 URL 拼出来,蜘蛛却找不到入口。可以在列表底部保留一个「下一页」和「最后一页」链接,成本很低。

二、排序与筛选参数叠加

同一个列表加上 ?sort=price、?brand=a、?page=3,组合数量会迅速膨胀。这类页面大多不值得被抓,也没有必要全部保留为可索引地址。更稳妥的做法是:筛选结果页允许抓取但不索引,通过 canonical 或 meta robots 明确指向主列表;分页本身则保留自指 canonical,不要指向第一页,否则蜘蛛会认为后续页是重复内容而不再进入。

三、分页地址不稳定

如果每次访问分页都生成带随机参数的地址,或者翻页通过 POST 返回内容,蜘蛛拿到的 URL 无法复现。分页地址应该是可复现、可分享、参数固定的形式。

检查清单

  1. 禁用 JS 后,分页链接是否仍是可点击的 href;
  2. 列表底部是否存在「下一页」或「末页」入口;
  3. 分页 canonical 是否指向自身;
  4. 筛选、排序参数是否被明显区分为不索引;
  5. 重要详情页是否都有非分页入口,比如专题页、相关推荐、Sitemap;
  6. 抓取日志里,分页 URL 的抓取频次是否与详情页相当,还是几乎为零。
分页不是给蜘蛛爬到底用的,是给详情页提供第一条路径。路径够短、够稳定,比页数够多更重要。