搜索抓取

分页翻到第几页:蜘蛛沿着列表页前进时会在哪里停下

列表页分页是蜘蛛发现详情页的重要路径,但翻页太深会消耗抓取预算,链接写法不当也可能让蜘蛛提前停下。这篇文章从抓取路径角度,聊分页链接怎么放、翻到第几页比较合理,以及 Sitemap 和内链如何给分页兜底。

搜索抓取

分页翻到第几页:蜘蛛沿着列表页前进时会在哪里停下

分页是抓取路径上的一段路

列表页通常按时间、热度或分类排序,每页放十几到几十条链接。蜘蛛第一次抓到列表页时,会看到第一页的详情链接,以及一个指向第二页的“下一页”链接。它顺着这个链接继续走,再发现第二页的详情链接,如此往复。对蜘蛛来说,分页不是一条独立的路径,而是从频道页走向详情页的一段过渡路。这段路走得顺不顺,决定了它能不能在有限时间里摸到更深的内容。

反过来,如果分页链接断掉,或者翻页按钮只是一个不能直接抓取的控件,蜘蛛到了第一页或第二页就可能停住。后面的详情页并不是不存在,只是缺少一条能走过去的普通链接。

蜘蛛沿着分页走时在做什么

蜘蛛不会像人一样滚动页面,它主要看 HTML 里有没有可抓取的链接。常见的分页写法有几种:

  • 普通 a 链接:指向 ?page=2 或 /list/page/2/ 这类地址,蜘蛛能直接跟进。
  • JavaScript 翻页:点击后由脚本请求数据并渲染,第一次抓取时可能只看到第一页。
  • “加载更多”按钮:如果按钮背后没有可抓取的 URL,蜘蛛通常不会去点。
  • 无限滚动:内容随滚动加载,蜘蛛没有滚动动作,容易只拿到首屏。

所以,分页能不能被蜘蛛走通,关键不在于视觉效果,而在于每个“下一页”是否对应一个真实的、可被链接到的 URL。

哪些分页写法容易让蜘蛛提前停下

有些站点为了体验,把分页做成纯前端交互。用户用起来顺滑,但蜘蛛看到的是一个没有出链的页面。常见情况包括:

  • 翻页链接由 JS 动态插入,且没有服务端渲染;
  • “下一页”用 button 或 span 加事件,没有 href;
  • 分页参数被 robots.txt 屏蔽,蜘蛛无法跟进;
  • 第二页之后返回 404 或空内容;
  • 分页地址带大量跟踪参数,蜘蛛把每一页当成不同 URL,反复抓取。

这些问题不一定会立刻让蜘蛛完全停止,但会让它在某个位置找不到继续向前的路。抓取日志里常表现为:列表页抓取正常,详情页发现量却集中在第一页。

翻页到第几页比较合理

从抓取预算的角度看,分页越深,蜘蛛花在列表页上的时间越多,留给详情页的时间就越少。很多站点的列表页翻到很后面,内容重复度高、点击价值低,蜘蛛继续翻的动力也会下降。一个实用的做法是:

  1. 把最重要的内容放在前几页,确保蜘蛛在前三到五页就能拿到主要详情链接。
  2. 为列表页设置合理的每页条数,不要为了减少翻页把几十条链接塞进一页,影响加载速度。
  3. 如果内容量很大,考虑用分类、标签、时间归档做更细的入口,而不是只靠一路“下一页”。
  4. 保留一个可抓取的“下一页”链接,同时给分页地址做规范化,避免参数版本泛滥。

翻页深度没有统一标准,但可以观察抓取日志:如果蜘蛛长期只抓到前几页,后面详情页很少出现,就要检查分页路径是否在某处断掉了,而不是一味增加分页数量。

分页、Sitemap 和内链怎么配合

分页是发现路径,不是唯一路径。对于翻不到底的深层内容,可以用 Sitemap 把重要详情页直接列出,让蜘蛛不必依赖分页一路翻下去。同时,在详情页之间加上相关推荐、上一篇/下一篇、标签聚合等内链,也能给蜘蛛提供另一条到达路径。

这样一来,分页负责近期内容的快速发现,Sitemap 负责全量 URL 的兜底,内链负责页面之间的互相牵引。三条路各司其职,比把所有希望压在分页上更稳。

一个简单的检查清单

  • 分页链接是否为可抓取的 a 标签,href 指向真实地址;
  • 第二页及之后是否能返回正常内容,而不是空页或错误页;
  • 分页参数是否尽量简洁,避免无意义的跟踪参数;
  • 列表页是否有明确的上一页、下一页和页码链接;
  • Sitemap 是否覆盖了分页之外的详情页;
  • 抓取日志里详情页的发现是否只集中在前一两页。
分页的目标不是让蜘蛛翻完所有页,而是让它在有限抓取里更早遇到值得抓的 URL。

把分页当成抓取路径的一部分来设计,蜘蛛走起来会顺很多;剩下的,交给持续观察和调整。