搜索抓取

分页链接与抓取路径:蜘蛛能翻到列表页第几页

列表页翻页是很多站点详情页的主要发现入口。本文梳理蜘蛛眼里翻页链接的几种形态,常见的断点(JS 加载、参数变体、软 404),以及如何用可见链接和第二入口让深层 URL 更容易被抓到,并给出用日志验证翻页深度的方法。

搜索抓取

分页链接与抓取路径:蜘蛛能翻到列表页第几页

大多数电商、资讯类站点,详情页的发现入口都压在列表页翻页上。首页和栏目页能带到的只是一小部分,真正大量的 URL 是靠第 2 页、第 3 页这样一页页展开的。所以翻页链接的形态,直接决定了蜘蛛能不能走到深层。

一、蜘蛛眼里的翻页链接长什么样

蜘蛛不会点按钮,它只认能解析出来的链接。翻页有三种常见实现,抓取结果差别很大:

  • 静态链接:list?page=2 写在 a 标签的 href 里,蜘蛛顺着走,最稳定。
  • 滚动加载:页面到底部由 JS 请求下一页并追加,地址栏不变。蜘蛛通常看不到后续内容,除非另有静态入口。
  • 加载更多按钮:如果是 button 标签且没有 href,等于给蜘蛛关上门。

如果站点必须用后两种交互,至少给每页留一组普通 a 链接做兜底,比如在列表底部放下一页和页码。

二、翻页路径上常见的断点

  • 页码只渲染前几页,后面靠 JS 展开,蜘蛛跟进不去。
  • 下一页到达末页后直接消失,却没有明确的终止信号,蜘蛛会反复试探。
  • 翻页链接把排序、筛选参数一起带出去,例如 page=2 加 sort 再加 color,蜘蛛跟着走出一堆参数变体,把抓取量耗在重复列表上。
  • 页码超出范围时返回 200 的空列表页,形成软 404,既浪费抓取也容易混淆判定。
  • 分页用井号或 history.pushState 改地址,页面没有真实可请求的 URL。

三、让翻页路径更好走

可以从链接和入口两个方向调整:

  • 每一页都保留下一页和可点击的页码,不依赖 JavaScript 生成。
  • 分页参数尽量单一,排序、筛选变体不要出现在翻页链接里,需要的筛选页单独给入口。
  • 到最后一页时给出明确的结束信号,避免蜘蛛无限试探。
  • 对特别深的内容,用分类、标签、专题等第二入口缩短路径,不要只靠一路翻页。
  • 如果使用 rel=next 与 rel=prev,要知道主流搜索引擎已不再把它当作索引信号,写了无害,但别指望它替代可见链接。

四、怎么确认蜘蛛翻到了后面

光看页面上的链接不够,得回到日志验证:

  1. 在服务器日志里筛分页参数,看访问是否形成连续序列,比如 page=1 到 page=2 再到 page=3。
  2. 看深层 URL 的首次被抓时间,以及抓取它的 referer 来自哪一页。
  3. 结合 Sitemap,把重要但不常被抓的 URL 单独列出,作为兜底发现渠道。
  4. 如果日志里长期只有前两页被抓,问题多半在翻页链接本身,而不是内容质量。

分页看起来是最基础的导航,但它同时承担着 URL 发现和路径收敛两件事。把翻页链接做成蜘蛛能走的普通链接,往往比反复调整抓取设置更有效。

抓取路径的宽度由入口决定,深度由翻页决定,两者缺一,深层内容就很难被稳定发现。