搜索抓取

搜索蜘蛛抓取:URL 参数组合扩散与筛选排序页的抓取收敛核对

筛选、排序、会话与追踪参数会让同一批内容派生出大量 URL,蜘蛛沿内链逐一访问时容易把抓取额度耗在相似页面上。本文给出从日志抽样、参数分类到内链指向与规范声明的核对顺序,帮助判断哪些参数页需要保留发现入口,哪些应当收敛,并说明各类收敛手段的副作用。

搜索抓取

搜索蜘蛛抓取:URL 参数组合扩散与筛选排序页的抓取收敛核对

很多站点的 URL 数量增长并不是因为内容变多,而是因为同一批内容被参数拆成了多个版本。列表页加上筛选、排序、分页、视图切换,再叠加会话 ID 或渠道追踪参数,一个分类可能派生几百个地址。蜘蛛沿内链爬行时无法判断这些地址是否代表不同内容,只能逐个访问,抓取额度就这样被相似页面摊薄。

参数扩散通常从哪几个口子进来

  • 筛选与排序:颜色、尺码、价格升序这类条件组合,条件越多组合越多。
  • 分页与视图:分页参数与列表视图参数同时出现,形成二维矩阵。
  • 会话与追踪:会话 ID、渠道来源、外部跳转标记等,同一个页面被反复生成新地址。
  • 站内搜索结果页:关键词被外部链接或爬虫试探地址带入。
  • 内链本身:模板里的按价格排序、查看全部等链接直接输出带参地址,等于主动把参数地址递给蜘蛛。

先做分类,再决定收敛方式

不是所有参数页都要清理。判断标准可以看两点:这个地址是否有稳定的检索需求,以及它是否提供了不重复的内容。

建议保留发现入口的参数页

  • 有明确检索意图、且页面正文确实随参数变化,例如品牌筛选后展示不同的商品集合。
  • 分页序列,它承担着把深层内容暴露给蜘蛛的作用。

建议收敛的参数页

  • 纯排序、纯视图切换,输出内容与默认顺序基本一致。
  • 会话 ID、追踪参数、站内搜索关键词。
  • 多条件筛选的自由组合,尤其是条件数量超过两三个的。

核对顺序:从日志到内链

  1. 在访问日志里按路径统计,筛出带问号的请求,按参数名分组,看每个参数名对应的 URL 数量级。
  2. 对比被访问的参数地址数量与实际产生点击的地址数量,差距大的参数优先处理。
  3. 检查模板输出,确认列表页、面包屑、相关推荐等位置是否生成了带参链接。
  4. 检查 Sitemap 是否把参数地址也提交进去,提交了就要同步调整。
  5. 确认站内跳转与分页链接在首屏 HTML 中可被直接读到,不依赖前端渲染后追加。

收敛手段与各自的副作用

canonical 指向规范地址

适合同一内容多参数的情况。注意 canonical 只在页面被访问后才生效,蜘蛛已经访问过的参数地址仍会消耗一次抓取;如果参数地址数量极大,单靠 canonical 收敛偏慢。

robots.txt 屏蔽特定参数

对组合爆炸的参数比较有效,但要清楚被屏蔽的地址不会被抓取,页面上的链接也不会被继续跟踪。如果某个参数页既被屏蔽又是唯一入口,深一层内容可能失去发现路径。建议只屏蔽明确的会话、追踪与排序类参数,并避免屏蔽分页。

内链统一指向无参地址

这是最省事的一步。默认排序、默认视图、默认筛选状态的链接都输出无参形式,把带参地址留给用户点击后由前端生成。这样蜘蛛看到的链接集合会明显收窄。

把筛选结果放到交互层

如果筛选结果依赖前端渲染,要确认首屏 HTML 里仍有可抓取的分页或分类入口,否则会变成入口缺失的另一类问题。

参数收敛的目标不是让蜘蛛一个参数页都不访问,而是让它把时间花在真正有差异的地址上。收敛前后都可以用日志里的参数请求占比做对比,看变化是否符合预期。

复查时看什么

  • 参数请求在总抓取中的占比是否下降,下降的是不是目标参数。
  • 分页与分类入口的抓取是否保持稳定,没有因屏蔽规则被误伤。
  • Sitemap 中是否还残留参数地址。
  • 被保留的参数页是否仍能正常返回内容,没有因为规则调整返回 403 或空壳页。

参数治理没有一次到位的做法,站点结构、筛选组件和运营活动都会不断产生新参数。把参数名登记成清单,新增功能上线前先确认它会不会生成新的 URL 维度,比事后清理更省力。