搜索抓取

抓取日志怎么看:判断蜘蛛是否走到了你的深层页面

服务器日志能直接反映蜘蛛的抓取路径,但字段多、信息杂,直接翻很难看出结论。本文按排查顺序整理:怎样确认来的是哪类蜘蛛,哪些字段值得看,如何用目录聚合和状态码分布判断深层页面有没有被抓,以及带宽、单日数据、429 等常见误读。

搜索抓取

抓取日志怎么看:判断蜘蛛是否走到了你的深层页面

服务器日志是判断抓取状况最直接的证据。第三方工具给的通常是估算,日志给的是记录:蜘蛛什么时候来、抓了哪些 URL、拿到什么状态码,都能对上。问题在于日志信息量大、字段杂,直接翻很难看出结论。下面按排查顺序说几个可操作的看法。

先确认来的是谁

日志里的 User-Agent 不一定可信,蜘蛛可以伪装,普通脚本也能自称蜘蛛。稳妥的做法是交叉验证:把 IP 反查确认归属,或者比对已知的抓取 IP 段。如果只根据 UA 判断,很容易把采集程序算成蜘蛛,得出错误的抓取量。

同时要区分蜘蛛类型。来自不同产品线的抓取目的不同,频率和深度也不一样。把几类混在一起统计,分布会失真。

值得看的几列

  • 请求时间:判断抓取时段,是否集中在低峰,是否与你的发布节奏重合。
  • 状态码:200、301、404、429、503 的占比,比总量更有说明力。
  • URL 路径:按目录聚合,能看出蜘蛛偏好抓哪一层。
  • 响应大小与响应时间:抓取慢的页面往往在这里暴露。
  • Referer:部分请求会带来源,可以大致还原爬行路径。

看分布,而不是看总量

抓取总数增长不代表抓得更深。可能是同一批列表页被反复抓,也可能是大量 404 被反复请求。更有用的指标是这几组比例:

  1. 抓取请求里,内容页占多少,列表页占多少。
  2. 有多少请求落在需要多次点击才能到达的深层目录。
  3. 状态码分布里,非 200 的比例是否在上升。
  4. 同一 URL 被重复抓取的间隔,是否短到不合理。

如果内容页占比长期很低,问题通常不在蜘蛛,而在入口:内链没有把深层页面暴露出来,或者 Sitemap 里的 URL 本身就没覆盖到。

判断深层页面有没有被走到

取一批你关心的深层 URL,用路径关键词在日志里筛选,看它们在最近一段时间内有没有出现。更细一点的做法:

  • 把 URL 按目录分组统计,找出零抓取的目录。
  • 看是新页面从未被抓,还是旧页面停止被抓。
  • 对比发布时间和首次抓取时间,估算发现延迟。

零抓取的目录往往对应两类问题:没有任何内链指向,或者指向它的链接藏得太深、太靠后。前者需要补入口,后者需要调整内链结构,把重要页面往上层提。

几个常见的误读

一是把带宽当抓取量。蜘蛛抓一个体积大的页面,占用的带宽可能是几十个小页面的总和,但抓取次数只有一次。二是只看当天数据。抓取本身有波动,单日高低说明不了趋势,至少看一周到一个月。三是忽略 429 和 503。这两个状态码出现得多,说明服务端在主动限速,蜘蛛会据此降低频率,之后的抓取量下降是结果,不是原因。

从日志回到动作

看完日志,能落地的动作通常只有三类:补入口(内链、Sitemap、导航)、减负担(去重、修死链、收敛参数组合)、改响应(缓存、限速、修慢页面)。日志本身不解决问题,它只是告诉你问题出在哪一段链路上。

抓取量上升不等于抓得更好。真正值得关注的是:该被抓的页面有没有被抓到,抓到的是不是你希望被抓的那一批。