屏蔽无用的爬虫,降低服务器CPU负载
网站管理 •
服务器经常CPU升高,分析了日志,发现是好多个爬虫在疯狂的抓取,在robots.txt里面做了屏蔽,在robots.txt的最上面添加:
User-agent: MJ12bot
User-agent: SemrushBot
User-agent: ClaudeBot
User-agent: HanaleiBot
User-agent: GPTBot
User-agent: AhrefsBot
User-agent: BLEXBot
User-agent: OAI-SearchBot
User-agent: DotBot
User-agent: Amazonbot
User-agent: Applebot
Disallow: /但是第二天看了日志发现爬虫还是来抓取,AhrefsBot这些流氓爬虫根本就不遵守robots协议。
AhrefsBot这些爬虫,对网站没啥用,可以全部屏蔽,留着常用的搜索引擎爬虫就可以了。
.htaccess文件中添加以下规则来高效屏蔽:
RewriteCond %{HTTP_USER_AGENT} MJ12bot|PetalBot|ClaudeBot|SemrushBot|DotBot|BLEXBot|AhrefsBot|Amazonbot [NC]
RewriteRule .* - [F,L]添加在最前面。这个规则会检查访问者的User-Agent,如果包含上述任一爬虫名称(不区分大小写),就会返回403禁止访问状态码。其中[NC]表示忽略大小写,[F]表示禁止访问,[L]表示这是最后一条规则。
验证方法:
# 测试规则是否生效
curl -I -A "AhrefsBot" http://yourdomain.com/
# 应返回 HTTP/1.1 403 Forbidden
还有一个办法,如果网站是Wordpress,安装Wordfence 安全插件,在插件防火墙->拦截->自定义模式,比如说要屏蔽爬虫,就在浏览器用户代理(User Agent)那里输入*AhrefsBot*,前后带星号,被拦截屏蔽的原因随便填,点击“屏蔽匹配此模式的访客”即可。
屏蔽这些爬虫之后,网站的CPU负载应该会降下来。

