很多运营动作做完之后,大家最想知道的是“蜘蛛到底来没来、抓了什么”。第三方工具给的是估算,服务器日志给的是原始记录。日志不能证明收录或排名,但它能回答一个更基础的问题:抓取是否正常。下面是一套不依赖付费工具的查看思路。
一、先认清日志里的字段
常见的 access log 每一行大致包含这几项,按看问题的顺序排列:
- 时间:用来判断抓取是否集中、是否有规律;
- 客户端 IP:配合 UA 一起判断来源,单看 UA 容易被误导;
- 请求方法与完整 URL:注意保留查询参数,参数是判断筛选页被抓多少的关键;
- 状态码:最直接的异常信号;
- 响应大小:0 字节的 200 往往是空页面;
- User-Agent:粗筛用,不作为唯一依据。
日志文件会不断增长,先做按天轮转和压缩归档,再谈分析。放在同一台机器上的日志最好限制保留天数,避免磁盘被写满——这属于服务器维护的常规动作,和被蜘蛛抓取本身一样重要。
二、把蜘蛛记录单独筛出来
先用 UA 关键词过滤得到一份粗表,然后做交叉验证:同一 IP 段在短时间内的访问量、是否只请求页面不请求静态资源、是否遵守 robots.txt 的路径规则。反过来,UA 写着常见爬虫名字、行为却像普通浏览器(加载图片、CSS、执行跳转)的,大概率不是。
状态码分布怎么看
- 5xx 比例升高:先查服务器和上游,抓取中断往往从这里开始;
- 404 集中在某个目录:通常是栏目调整、内容下架后遗留的链接;
- 3xx 反复出现:可能存在跳转链,蜘蛛要多跳几次才能到终点;
- 403 或 429 偏多:可能是防火墙或限速规则把蜘蛛也拦了。
抓取频次与路径集中度
把 URL 按目录聚合,看蜘蛛把注意力花在哪。如果绝大多数请求都落在首页、列表页和几个热门详情页,而核心栏目几乎没被访问,问题通常不在服务器,而在内链和结构。反过来,如果大量请求打在筛选参数、日历页这类低价值地址上,就要考虑参数治理。
抓取深度
从日志里挑出 URL 层级较深的样本,看它们是不是你希望被抓的页面。如果深层被抓的只有零散旧页面,说明入口链接不足,靠站点地图单点提交的效果有限。
三、把日志和站内数据对照
- 抽站点地图里的若干 URL,回日志查是否出现过;一条都没有,先排查提交方式和 robots 规则;
- 改过内链的文章,对比改动前后目标页的抓取次数;
- 把死链清单和日志里的 404 记录互相对照,避免只处理工具报的那一批。
四、一套轻量流程
- 前一天日志解压,按小时粗看总量,找出异常时间段;
- 过滤蜘蛛记录,统计状态码分布和 Top 目录;
- 挑 10 条异常记录人工打开确认;
- 把确认的问题写成待办,能当场改的当天改,需要排期的记下来。
五、几个常见误区
- 把抓取次数当成收录数量;
- 只看 UA 就断定爬虫身份;
- 忽略 CDN 或反向代理,拿到的其实是边缘节点的日志;
- 日志量太大直接放弃,其实按目录抽样也能看出趋势。
日志的价值不在于数据量大,而在于它记录的是真实发生的请求。每周花半小时翻一遍,比事后猜测要省力得多。