爬虫识别与封禁,区分搜索引擎和恶意爬虫:爬虫识别与封禁

网站跑了一段时间后,日志里出现大量陌生 IP 疯狂抓取,CPU 飙升、带宽跑满,但你又不敢乱封,怕把百度、必应这些搜索引擎蜘蛛一起挡在门外。
这篇文章帮你解决的就是这个矛盾:用可验证的方法区分搜索引擎和恶意爬虫,只封该封的,保住正常收录。

先判断:你是被正常抓取还是恶意爬虫盯上了

打开网站访问日志,路径通常在 /www/wwwlogs/(宝塔)或 /var/log/nginx/。
用下面命令快速看谁在频繁访问:

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

输出里如果某个 IP 请求量远超其他,且访问的 URL 杂乱(比如批量扫描 .env、wp-login.php、admin),基本可以判定为恶意爬虫。
正常搜索引擎蜘蛛的请求 URL 通常集中在文章页、列表页,且有规律。

判断条件一:请求频率异常且 URL 无规律,优先怀疑恶意爬虫;
请求集中在内容页且频率平稳,更可能是搜索引擎。

第二步:验证是不是真正的搜索引擎蜘蛛

恶意爬虫最常用的手段是伪造 User-Agent,把自己伪装成 Baiduspider 或 Googlebot。
所以光看 UA 不可信,必须做 IP 反查。

以百度为例,官方蜘蛛的 IP 段是公开的。
用 host 或 nslookup 反查:

host 116.179.32.1

如果返回结果里包含 baidu.com,说明是百度官方 IP;
如果什么都查不到或指向陌生域名,那这个 UA 就是伪造的。
必应、谷歌同理,可以查它们的官方 IP 列表做比对。

判断条件二:UA 声明是搜索引擎,但反查 IP 不属于该搜索引擎官方段,一律按恶意爬虫处理。

第三步:用 Nginx 配置精准封禁

最稳妥的方式是在 Nginx 里做两层控制:先放行验证过的搜索引擎 IP,再对恶意 UA 和异常 IP 做拦截。

在站点配置的 server 块内加入:

# 封禁常见恶意 UA
if ($http_user_agent ~* (SemrushBot|AhrefsBot|MJ12bot|DotBot)) {
    return 403;
}

# 封禁指定恶意 IP
 deny 45.xx.xx.xx;

改完执行 nginx -t 测试语法,再 nginx -s reload 重载。
宝塔用户可以在「网站」→「设置」→「配置文件」里直接编辑,保存后点「重载配置」。

判断条件三:封禁规则上线后,先观察 24 小时,确认目标 IP 请求返回 403 且搜索引擎蜘蛛访问正常,再考虑长期保留。

避坑指南:这些操作容易误伤

  • 不要直接封整个 C 段:云服务商和 CDN 的 IP 经常共享,封段可能误伤真实用户。
  • 不要只依赖 UA 黑名单:恶意爬虫随时换 UA,黑名单要配合频率限制使用。
  • 慎用 robots.txt 防恶意爬虫:它只对守规矩的爬虫有效,恶意爬虫根本不看。
  • 封禁前先备份配置:改错 Nginx 配置会导致整站 502,保留一份原始文件再动手。

验证效果:确认封禁生效且没误伤

封禁后重新统计日志:

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

对比封禁前的数据,如果目标 IP 请求量归零或大幅下降,说明规则生效。
同时用 curl -I 模拟被封锁的 UA 访问,应返回 403:

curl -I -A "SemrushBot" http://你的域名/

如果返回 HTTP/1.1 403 Forbidden,配置正确。
最后别忘了检查百度搜索资源平台的「抓取诊断」,确认蜘蛛仍能正常访问。

常见疑问

封禁恶意爬虫会影响网站 SEO 吗?
只要不误封搜索引擎官方 IP,就不影响。关键在于用 IP 反查确认身份,而不是看到 UA 里有 spider 就封。

没有宝塔面板,纯命令行怎么操作?
直接编辑 /etc/nginx/conf.d/ 下对应站点的 .conf 文件,加完规则后 nginx -t && nginx -s reload 即可。

恶意爬虫换 IP 继续抓怎么办?
可以考虑接入 CDN 或 WAF,在边缘层做频率限制和 UA 校验,比在源站逐条封 IP 更省力。

区分搜索引擎和恶意爬虫的核心不是看 UA,而是看 IP 归属和访问行为。
先分析日志锁定异常来源,再反查 IP 验证身份,最后用 Nginx 规则精准拦截并验证效果,这样既能挡住恶意抓取,也不会影响正规搜索引擎的收录。

分享到:
上一篇
个人博客CMS压力测试对比,Typecho
下一篇
全站301重定向新旧域名,迁移保留SEO权重
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意