很多人以为,只要把链接放进蜘蛛池,蜘蛛就会挨个把目标页爬一遍。实际翻日志会发现完全不是这样:有的目标页一天被爬十几次,有的挂了几周都没人理。这背后是抓取预算的分配问题。
抓取预算不是配额,而是权衡结果
搜索引擎给站点分配的抓取量,并不是一个固定配额,而是根据站点质量、更新频率、响应速度、历史抓取收益等条件综合权衡出来的大致范围。蜘蛛池提供的是一个更密集的 URL 发现入口,它改变的是“蜘蛛能不能看到链接”,而不是“蜘蛛一定会爬”。
换句话说,蜘蛛池能做的是把候选 URL 送到蜘蛛面前,真正决定爬不爬、爬多深的,仍然是目标站自身的基础条件。
蜘蛛池里,预算消耗在哪里
- 入口页本身:入口页数量远大于目标页时,大部分抓取会停在入口层。
- 重复发现的同一 URL:几十个入口指向同一个目标页,去重后往往只算少数几次有效发现。
- 低价值页面:纯中转页、空内容页,蜘蛛爬过一次就不再回来。
- 超时与错误:慢响应和 5xx 会直接拖低整站的抓取意愿。
为什么有些目标页被反复抓
常见原因有几类:目标页内容变化频繁、被内链密集指向、所在域名本身抓取频率较高,或者刚好落在蜘蛛的回访周期里。反过来,长期没被动过的页面,多半是首次抓取后没有新信号,蜘蛛判断不值得再来。
几个常见误区
- 入口页越多越好。入口页数量暴涨会稀释预算,效果可能不升反降。
- 把所有页面平铺进去。没有优先级,蜘蛛只能随机抓,重要页面容易被挤掉。
- 只看是否被抓。被抓不等于被收录,抓取只是第一步。
- 频繁改动入口页。改动本身会触发重新抓取,改得太勤会把预算耗在入口页上。
让预算花在刀刃上的做法
- 目标页分级:把最需要被抓的页面放在最短链路、最稳定的入口上。
- 控制入口页规模:与其铺一万个相似入口,不如把几百个入口做扎实。
- 减少重复发现:同一目标页不要让大量入口同时指向。
- 保证可抓性:状态码正常、响应稳定、不依赖 JS 也能拿到目标链接。
- 用日志验证:按周统计目标页的抓取次数,看预算是否流到了你想要的位置。
值得长期观察的指标
- 目标页从上线到首次被抓的间隔
- 同一 URL 的复抓频率
- 入口页抓取量与目标页抓取量的比例
- 抓取过程中的超时和错误比例
这些数据比“今天蜘蛛来了多少次”更有参考价值。如果目标页的抓取占比长期偏低,说明预算大多停在入口层,需要重新审视链路结构和入口页质量,而不是继续加量。
抓取预算本质上是一种有限的注意力。蜘蛛池的作用是提高被注意到的概率,而不是保证每个页面都被认真看完。