日志里的Baiduspider不一定是真的,查一次来访IP的域名就知道

来源:互联网 时间:2026-10-21

日志里Baiduspider一天出现两万多次,抓的多是带问号的搜索参数页,爬虫带宽和数据库连接数跟着涨,站长后台的收录数却一动不动。带宽账单和收录曲线朝两个方向走,这件事本身就说明来访的那批客户端有问题。真蜘蛛的抓取是有节奏的,两万次摊在全天各处,不会挤在几个小时里,这件事值得花半小时查清楚。

User-Agent只是请求头里的一行字符串,用curl加一个-A参数就能随便写,想写成什么就写成什么。这行字没有任何校验机制。自称Baiduspider的请求里混着扫描器、采集器、靠刷请求占资源的东西,UA和真蜘蛛一个字都不差。只按UA判断等于没有判断。

百度给出的识别办法是两步域名核对,第一步对来访IP做反向解析。linux上用host加IP地址,Windows上用nslookup加IP,mac上用dig -x。解析得到的主机名必须以.baidu.com或者.baidu.jp结尾,前面带baiduspider和来访IP的横线写法,中间夹一段crawl。查不到PTR记录,或者返回的是别的域名,这一步就过不了。这条命令不需要联网查第三方库,成本几乎为零。

第二步把方向倒过来。拿刚得到的主机名再做一次正向解析,看A记录是否回到同一个IP,两步都对上才算真的。只过第一步仍然可能是伪造,给一台机器配一个看起来像百度的主机名是能做到的,但baidu.com这个域下的A记录指向哪里,不在伪装者手里。这一步最常被跳过,也恰恰是唯一挡得住伪造的地方,很多号称能验蜘蛛的工具就漏在这儿。两步都走完再动手封,别急着写规则。挑出来核对的IP要覆盖不同时段,只看一个小时的结论不算数。

行为特征可以当旁证,不能当主证据。真蜘蛛按robots.txt走,抓取频次和站点权重相关,不会在几分钟内把同一个页面配上几十个参数全抓一遍。盯着session id、排序参数、日历页无限抓的,基本可以定性为采集器。这种观察最省事,也最容易看出规律。

确认伪造之后,用nginx的map按UA加验证结果做拦截,或者把IP丢进ipset封一段时间。封禁范围要落在具体IP上,别按UA整段拦。规则写宽了,真蜘蛛跟着遭殃,收录掉下去很难追回来。

动手前先从日志里挑十个IP手动跑一遍这两条命令,把结果记下来,再决定要不要上自动封禁。规则上线后隔一天回看抓取量和收录,真蜘蛛的访问量不该有明显变化,掉下去了就是误封,得马上回滚。

相关文章

A5创业网 版权所有

返回顶部