搜索抓取

抓取日志别只看次数:从蜘蛛访问记录里找出 URL 发现的卡点

抓取日志里的状态码、响应时间、字节数和请求路径,比抓取总量更能说明问题。本文整理了从蜘蛛访问记录中判断有效抓取比例、URL 覆盖率与常见卡点的方法,也提醒日志看不到的部分该用什么补齐。

搜索抓取

抓取日志别只看次数:从蜘蛛访问记录里找出 URL 发现的卡点

蜘蛛抓取这件事,很多站长是靠“今天抓了多少次”来判断的。次数当然要看,但只看次数容易得出错误结论:抓取量涨了,可能是蜘蛛在反复抓同一批带参数的 URL;抓取量跌了,也可能只是它在消化已有页面。把日志当成一份原始记录来读,能看出更多东西。

日志里最值得看的几列

  • 状态码:200 是正常;301/302 说明还在走跳转;404/410 说明链接指向已失效;403 常见于防火墙或 CDN 拦截;429、503 说明服务端在限流或过载。按状态码分类统计一遍,比单看总量有用得多。
  • 响应时间与响应字节数:蜘蛛每次都要花上秒级才拿到响应,或者返回的字节数远小于页面实际大小(被截断、返回空壳 HTML),都需要回服务端复核。
  • User-Agent:区分 Googlebot、Bingbot、百度蜘蛛等。不同蜘蛛的节奏不一样,混在一起统计会互相干扰。
  • 请求路径:把同一目录下的抓取次数排序,能看出蜘蛛偏好走哪条路径,也能发现某些目录从未被抓过。

从日志里能算出的三个指标

有效抓取比例

用 200 状态码的请求数除以蜘蛛的全部请求数。这个比例偏低,通常意味着大量请求耗在重定向、错误页或参数变体上,而不是耗在真正的内容页上。

URL 覆盖率

分母是你希望被发现的 URL 总数,可以拿 Sitemap 或整理好的内链清单来当基准;分子是日志里真实出现过的 URL 数。这个数字才能反映“发现”有没有缺口。

抓取分布在哪些层级

用 URL 路径深度粗略估算,看蜘蛛是主要停在列表页,还是能落到详情页。如果深层页面在日志里长期缺席,问题往往出在内链而不是服务器。

几个常见卡点

  1. 5xx 与超时集中出现:先确认是不是某个时段、某台机器或某个接口的问题,而不是整个站点都不稳定。
  2. 403 反复出现:可能是安全策略把蜘蛛误判成了攻击流量,需要核对 User-Agent 并做 IP 反查。
  3. 302 链太长:蜘蛛跟着跳,既消耗抓取额度,也容易丢参数。
  4. 同一内容被多种参数写法抓取:说明站内链接或推送清单里混进了带参数的 URL,需要统一规范。
  5. robots.txt 拦住了本该被抓的目录:这种情况在日志里的表现是“根本没有请求”,所以不能只在日志里找答案。
日志只记录了蜘蛛来过的请求,没来的页面不会留下任何痕迹。判断“发现缺口”必须把日志和 Sitemap、内链清单放在一起比对。

观察节奏与真伪核对

不需要每天盯。建议按周汇总一次,保留 30 到 90 天,重点看趋势而不是单日波动。改版、换 CDN、调整 robots.txt 的前后各留一段对照数据,结论会清晰很多。

另外要确认日志里的蜘蛛是真的。用 User-Agent 配合反向 DNS 反查,或对照搜索引擎官方公布的 IP 段,避免把伪装爬虫的流量当成搜索蜘蛛,否则所有结论都会偏。