设为首页
收藏本站
开启辅助访问
登录
立即注册
论坛首页
BBS
资源站采集问题
免费送云VPS
搜索
搜索
流量变现70%分成
招商联系客服
招商联系客服
招商联系客服
招商联系客服
公告导航
公告导航
获取积分方法
牛牛插件助手
赞片退还积分
技术支持声明
建站帮助
采集帮助
站长工具
站长工具
爱站综合查询
站长综合查询
草料二维码
WHOIS查询
备案查询
加密解密
资源推荐
资源推荐
索尼资源
闪电资源
无尽资源
OK资源
快车资源
最大资源
本版
文章
帖子
群组
用户
牛牛论坛
»
论坛首页
›
牛牛站长综合区
›
站长交流
›
现在AI火爆,服务器也总因为AI爬虫增加负担,如何屏蔽 ...
返回列表
发新帖
现在AI火爆,服务器也总因为AI爬虫增加负担,如何屏蔽
[复制链接]
83
|
1
|
2025-2-26 20:58:52
|
显示全部楼层
|
阅读模式
本帖最后由 olive 于 2025-2-26 21:00 编辑
生成式AI的发展和逐渐成熟,给人们带来了便利的同时也给内容创作者带来了负面影响。它降低了资料原始出处的访问价值,减少了网站的利益(流量、收益和创作积极性)。如果你跟我一样,想在自己的网站屏蔽AI的抓取,那么这篇文章就是为你准备的。
这是一篇新手向教程。过程十分简单!
屏蔽原因
虽然我在前言中有所提及,但并没有特别深刻的剖析所谓的负面影响。因为本文的重点是屏蔽方法,而不是屏蔽原因。
你可以参考此文了解我的更多看法。
配置robots.txt
具备最基本SEO常识的站长应该都知道robots.txt是什么,它是一个用来控制搜索引擎爬虫抓取范围的文件。我们可以在robots.txt屏蔽某些页面/某些爬虫,或仅允许某些爬虫。
举个最典型的例子:
User-agent:*
Disallow:/admin/
上述robots.txt规定了任何爬虫都不允许访问/admin/路径的页面。这个声明非常常见,因为将网站后台索引到搜索引擎中是毫无意义的,还会招来不必要的风险。
当我们要屏蔽特定的爬虫时,就需要将*改为该爬虫的User-Agent字符串。如果要屏蔽多个,那么就写上多个User-agent字段,再接一个Disallow字段即可。
User-agent:GPTBot
User-agent:Claude-Web
User-agent:ClaudeBot
Disallow:/
以上robots.txt屏蔽了ChatGPT和Claude这两个目前最著名的AI产品的抓取。
扩充列表
在了解原理后,我们通过网友们整理好的ai.robots.txt仓库,进一步扩充AI爬虫的UA规则。
robots.txt的可靠性
配置好robots.txt能代表相安无事吗?此文件真的能有效拒绝它们吗?
答案是否定的,因为AI的爬虫并不像搜索引擎爬虫那样成熟。它们可能会忽略robots.txt的后续更新,甚至在规则的解析和执行中发生错误。搜索引擎往往不用我们担心,因为从控制台能看到爬虫的行为,或自行测试搜索结果。但AI爬虫的行为就是黑盒,你什么也无法确定。所以我们要进一步的使用Nginx屏蔽它们。
配置Nginx
如果你跟我一样并不信任AI爬虫的行为,那么就有必要在访问控制层面去屏蔽它们。Nginx是绝大多数网站都会使用的反向代理工具,在Nginx层面可以轻松做到针对User-Agent的屏蔽。
我们添加以下配置片段:
set$is_bot 0;#定义变量表示此次访问是否为AI bot,默认为0(否)
if($http_user_agent~*(GPTBot|Claude-Web|ClaudeBot)){
#如果请求的User-Agent和AI bot的规则匹配,那么设置`is_bot`为1(是)
set$is_bot 1;
}
if($is_bot=1){
#如果是AI bot,返回403
return 403;
}
Nginx中的$http_user_agent是一个内置变量,表示当前请求的User-Agent字符串。~*是一个正则匹配操作符(忽略大小写)。我们用正则来判断请求是否是AI bot,如果是就返回403页面。
进一步的,按照扩充列表章节中的开源仓库补充正则,就能轻易的从访问控制层面屏蔽这些AI爬虫。现在无论这些爬虫是否遵循robots.txt规则,我们都能有效的拒绝它们。
现实情况是,往往这个列表太长了。所以单纯的if和正则并不推荐,我们应该将其转换为map块,如下:
map$http_user_agent$user_agent_from_ai{
default 0;#默认值为0
~*GPTBot 1;
~*Claude-Web 1;
~*ClaudeBot 1;
~*KangaroosBot 1;
#添加更多...
}
注意以上的KangaroosBot,它实际上对应Kangaroo Bot。但我们不能包含空格,因为它会被解析为新的参数。使用正则表达式中的s来表示一个空格。
最后用if判断$user_agent_from_ai的值:
if($user_agent_from_ai=1){
#如果是AI bot,返回403
return 403;
}
足够了吗
答案仍然是否定的。尽管在以上方法中,我们貌似在“约定”层面和“访问”层面都拒绝了它们,但这基于我们对AI公司/爬虫一定程度上的信任。
起码我们认为它们不会伪装而是使用固定的User-Agent。所以这样做只能防君子,不防小人。假设爬虫简单的伪装一下自己,访问控制就失效了。不过,我仍然认为行业巨头在这方面是值得信任的,但小团队的产品就不一定了。
要屏蔽经过伪装的AI爬虫其实是很困难的,但也不是没有办法。如果对大量的Nginx日志/请求日志进行复杂的特征/行为分析,我认为能一定程度上识别出爬虫。甚至收集到它们的IP地址,针对IP进行更彻底的屏蔽。但我们往往没有那么庞大的数据量来做这样的分析,若是Cloudflare这样的大型CDN服务商,那就有条件做到。恰好我了解到Cloudflare已经研发了相应的功能,并且是免费使用的。
使用Cloudflare
进入Cloudflare的“安全性”->“自动程序”页面,勾选「阻止AI爬虫程序和爬网程序」功能即可。
此功能可以一定程度屏蔽具有伪装性的爬虫,也包括老实使用自己的User-Agent的爬虫。如果使用过Cloudflare的防火墙等抵御攻击相关的功能,应该会知道它们有对客户端IP进行评分,以及可靠的指纹识别、大模型行为识别等技术。所以我认为Cloudflare还是可以做好这部分的。
那么使用这个功能,会对SEO造成影响吗?毕竟搜索引擎的爬虫也可能具有明显的特征。好问题,Cloudflare自然也考虑到了。它们维护了一个已验证机器人列表,其中包含几乎已知的主流搜索引擎爬虫,并允许它们的抓取。
对抗AI
以上配置中我们对AI爬虫响应403,但它不是唯一可取的响应方式。如果你认为有些爬虫过于困扰,反复变化毫无规则。那么就成全它让它抓取吧,先收集其IP并然后使用Miragend来污染它。
回复
使用道具
举报
小麦子
|
2025-2-27 15:19:58
|
显示全部楼层
写得还是不错的。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
浏览过的版块
海洋cms教程
olive
5
主题
13
回帖
63
积分
注册会员
注册会员, 积分 63, 距离下一级还需 137 积分
注册会员, 积分 63, 距离下一级还需 137 积分
积分
63
加好友
发消息
回复楼主
返回列表
行业交易
站长交流
有求必应
图文推荐
2024新版苹果cmsV10 MXProV2.0 自适应影视站主题模板
2024-08-18
牛牛论坛如何获得积分
2024-09-22
小龟影视基于苹果CMS系统的双端视频播放APP源码
2024-08-15
【百度爬虫2.4版】站群SEO系统/高质量养站/寄生虫/泛目录/自动收
2024-08-29
新手如何做seo网站?
2024-10-08
热门排行
1
PHP显示当前在线用户
2
2024新版苹果cmsV10 MXProV2.0 自适应影视
3
小龟影视基于苹果CMS系统的双端视频播放APP
4
牛牛论坛如何获得积分
5
PHP显示当前在线用户
6
各位有什么推荐的采集站吗
7
【百度爬虫2.4版】站群SEO系统/高质量养站/
8
2024全新改版美化小小影视app双端源码开源
9
苹果cmsv10海螺自适应4号模板
10
苹果CMS v10 插件安装使用介绍