搜索抓取

列表页、详情页、聚合页:不同模板在抓取路径里各管一段

站内抓取路径不只是链接写法的问题,页面属于哪类模板同样关键。列表页负责把新 URL 送出去,详情页负责延续路径并把蜘蛛引回主干,聚合页负责收口而不是无限开新入口。本文按模板分工拆解抓取路径的组织方式,并给出一份可以直接手动执行的路径自查清单。

搜索抓取

列表页、详情页、聚合页:不同模板在抓取路径里各管一段

先把模板放回路径里看

聊抓取路径时,注意力常常集中在链接本身:锚文本怎么写、要不要加 nofollow、放在第几屏。但还有一个更上层的变量——页面属于哪一类模板。蜘蛛在站内移动,本质是在不同模板之间跳转:列表页分发链接,详情页承载内容并向邻近页面延伸,聚合页把散落的 URL 收拢在一起。三类模板的分工一旦混乱,比如详情页承担了主要的分发任务、聚合页放出去大量重复入口,路径就会又长又杂,抓取效率跟着下降。

列表页:新 URL 的主要出口

新内容被发现,大多是从列表页开始的。列表页要做的事很清楚:把一批 URL 稳定地、按顺序地送出去。判断它是否合格,可以看几点。

  • 链接是否直接出现在初始 HTML 里。靠脚本在滚动或点击后才插入的列表,蜘蛛未必会触发。
  • 分页是否可达。第二页之后的链接要能通过下一页或页码链一路走下去,而不是只留一个加载更多的按钮。
  • 排序逻辑是否稳定。按时间倒序会让老内容迅速沉底,内容量大的站点,可以给重要栏目留一个固定的入口位。

列表页还有一个常见问题:一页塞太多链接。当一屏里出现几百个 URL,蜘蛛分配给单个链接的关注度会下降,真正重要的新内容反而被稀释。保持列表的克制,通常比一味扩大列表更有效。

详情页:终点,也是路径的中转

详情页是蜘蛛最常落地的位置,也是最该承担继续走这个任务的地方。它至少要有三类出口:同分类的相邻内容、直接的上一篇与下一篇、以及一条回到栏目和首页的路径。这三类出口性质不同——相邻内容维持横向的路径延伸,上下篇保证时间线上的连续性,回链则把蜘蛛拉回主干。

需要留意的是推荐模块。基于用户行为的随机推荐、个性化推荐,会让同一个 URL 每次返回的链接都不一样。蜘蛛抓到的只是一份随机快照,路径无法复现,也难以判断哪些链接是站点真正希望被走的。比较稳妥的做法是给推荐模块设定固定规则,例如固定取同分类最新若干条,把随机部分限制在装饰性位置。

聚合页:收口,别开口

标签页、专题页、站内搜索结果页都属于聚合页。它们对路径的价值是收口:把分散在多个栏目下的同主题 URL 集中到一处,方便蜘蛛一次走完。但聚合页也最容易变成开口——每个标签生成一个 URL、每个筛选项生成一个 URL,入口数量迅速膨胀。

处理聚合页时,可以把对用户展示和对蜘蛛开放分开考虑:聚合页本身可以保留,但通过参数限制、robots 规则或链接属性的方式,控制它往外放出多少个新入口。核心原则是聚合页的出链应该比列表页更少、更集中,而不是更多。

模板调整后,做一次路径自查

  1. 从首页出发,在关闭脚本的情况下,能否用纯链接走到最新发布的三层内容。
  2. 随机挑一个详情页,看它有没有通往同栏目其他页面的稳定入口。
  3. 统计聚合页数量以及各自的出链数,确认没有明显异常的膨胀点。
  4. 核对 Sitemap 里的 URL,与列表页、聚合页实际能走到的 URL 是否一致。

这几项检查不需要复杂工具,手动走几遍就能发现大部分断点。

别忘了页面本身的重量

模板越复杂,单次抓取消耗的时间越多,蜘蛛在同样时间内能走的路径就越短。列表页如果引入了大量外部脚本、详情页嵌入了重型组件,抓取节奏会明显变慢。这一步不需要做到极致,但至少要保证首屏内容的呈现不依赖大量异步请求。

路径的问题很少是某一处链接写错,更多是模板分工混乱之后的连锁反应。把列表页、详情页、聚合页各自该做的事分清楚,路径自然就顺了。