
Gary Illyes 和 Chery Prommawin 发布了他们在非正典柜系列中的第二支视频;这个叫做《你到底能放进robots.txt里什么?在这里,他们讨论了robots.txt文件支持的内容和不支持的内容。虽然谷歌可能支持功能或指令,但其他搜索引擎或AI爬虫可能不支持。
以下是主要要点:
- Googlebot 使用 robots.txt 文件来限制爬行
- 你的robot.txt文件应遵循RFC 9309
- 在规则路径中对非英语字符使用百分比编码
- 更多详情请查看谷歌的文档
以下是我从听视频中总结出来的一些观点:
- 不要因为某条robots.txt规则看起来对人类来说容易理解就认为它有效。验证语法并测试实际的 URL 模式。
- 屏蔽包含国际字符或表情符号的网址时要小心。编码不一致可能会削弱规则,尤其是在不同爬虫实现之间。
- 将爬行控制与AI训练策略分开。阻止AI爬虫访问页面,与告诉公司不要对已获得内容进行训练是不同的。
- 使用正确的爬虫名称。AI爬虫规则需要通过识别的用户代理令牌来识别目标爬虫。
- 记住,robots.txt不是安全机制。它要求合规爬虫避免访问指定路径;它不能阻止未经授权的客户端访问,也不能保证所有机器人都会遵守。
我最喜欢的部分是Cherry从橱柜里拿出一张John Mueller的相框照片,递给Gary:

以下是文字记录:
加里·伊利斯和切瑞·普罗马温讨论robots.txt
樱桃普罗玛温:加里,加里。内阁在召唤我。
加里·伊利斯:唯一呼唤你的是混乱。Cherry,别碰柜子。
加里·伊利斯:我们正在处理活动问答中最深处积压的案件。每次有人问我们奇怪的问题,都会直接放进去。
加里·伊利斯:这些年来我们积累了太多技术包袱。如果消防检查员走进那扇门,我可不认识你,Cherry。
加里·伊利斯:而这一切都藏在这个非正典柜子里。看哪。
樱桃普罗玛温:文件柜里的禁入标志。我们担心有人会爬进去吗?
加里·伊利斯:哦,樱桃,小心永远不嫌。
加里·伊利斯:这个标志在这里,是因为今天我们要谈论的是你网站的守门人——robots.txt文件。
樱桃普罗玛温:我生命中的挚爱。
加里·伊利斯:Robots.txt,这个文件只是一个简单的纯文本文件,存在于网站根部,用来告诉自动机器人它们能做什么、不能做什么。
樱桃普罗玛温:非常简单。真美。
加里·伊利斯:这些规则适用于搜索引擎爬虫、AI训练爬虫以及其他行为良好的爬虫。
樱桃普罗玛温:这就像是给爬行者制定的一套自定义规则。
加里·伊利斯:在Googlebot或其他任何行为良好的爬虫查看网站内容之前,它首先会检查这个文件,看看哪些房间允许进入,哪些是绝对禁止进入的。
加里·伊利斯:这一切都由互联网标准RFC 9309定义。
樱桃普罗玛温:真美。
加里·伊利斯:哦,好吧。
樱桃普罗玛温:大家想知道的是,这个文件到底能做出多奇怪?我们能把它弄得漂亮点吗?我们能用非英语字符吗?我们能用字面上的停止标志表情告诉AI机器人别进来吗?
加里·伊利斯:真的吗?好,我们去前台。
加里·伊利斯:robots.txt文件不是你的个人艺术画布。
樱桃普罗玛温:这是一个纯文本文件。
加里·伊利斯:许多爬虫访问你的网站时,首先会看它,看看他们可以去哪里。
加里·伊利斯:他们只关心自己能真正阅读的内容。
樱桃普罗玛温:好吧,我至少能在评论区做些有趣的ASCII艺术吗?比如一只巨大的ASCII鸡守护我的网站?
加里·伊利斯:从技术上讲,是的。
加里·伊利斯:用哈希值开头,爬虫会完全忽略它们。
加里·伊利斯:所以虽然这是个值得商榷的生活选择,但你可以把一只巨大的ASCII鸡贴进去。
樱桃普罗玛温:我曾经发现一个网站,robots.txt文件97%是脚本,只有3%是指令。
加里·伊利斯:它破坏了解析器吗?
樱桃普罗玛温:不,浪费带宽。
加里·伊利斯:是的,Cherry。
樱桃普罗玛温:那不是你的网站吗?
加里·伊利斯:我有很多网站。好吧,嘿,鸡,画画很重要。
加里·伊利斯:但如果你不小心把格式弄错了,可能会有危险。正如我们所说,标准是RFC 9309。
加里·伊利斯:谷歌遵循这一标准。解析器逐行读取。它寻找特定规则:用户代理、允许、不允许和网站地图。
加里·伊利斯:如果你说错了一句话或者试图用太多花哨的间距,系统会默默地丢弃它不理解的那行,然后继续操作。
加里·伊利斯:这是一台简单的机器。它只知道用几个命令该做什么。
樱桃普罗玛温:是的,就像你说的,四个。
加里·伊利斯:如果你写“don't crawl secret page”,Google 会看到“don't crawl”,意识到这不是一条有效的规则,会忽略它,甚至可能还是爬取你的秘密页面。
樱桃普罗玛温:如果有爬虫用鸡的表情符号作为产品代币怎么办?我可以写用户代理鸡表情吗?
加里·伊利斯:鸡机器人会停止吗?
樱桃普罗玛温:有个鸡机器人?
加里·伊利斯:遗憾的是,没有。
加里·伊利斯:不过,即使有,用户代理代币也只能有字母和破折号。
加里·伊利斯:表情符号是一个多字节的UTF-8字符,我不知道有没有编码能满足字母-破折号的要求。
加里·伊利斯:所以根本行不通。
樱桃普罗玛温:等等,那是不是意味着我们也不能让非英语角色出现?
加里·伊利斯:用户代理标记中不包含鸡肉表情或其他非英语字符。
樱桃普罗玛温:鸡肉让我思考了。
加里·伊利斯:你觉得当网站所有者在URL路径中使用鸡肉或本地化文本时会发生什么?
樱桃普罗玛温:哦,你是说非英语角色。也许是德国的变音符号,葡萄牙的切迪利亚?带着小帽子和尾巴的信件。
加里·伊利斯:是的,也许还有一套完全不同的字母,比如阿拉伯文、印地语、日文或中文。
加里·伊利斯:其实表情符号和非英语字符的概念完全一样。
加里·伊利斯:走一条像德语鸡肉页的路径,或者一条完整的汉字路线,通往美味的炸鸡页,比如鸡舍。
樱桃普罗玛温:你的发音出乎意料地不错,加里。你只会在服务器日志和咖啡里说话。你知道我刚才说了什么吗?
加里·伊利斯:拜托,我知道任何语言里最棒的炸鸡的节奏。但请多说说解析器。
樱桃普罗玛温:好吧,Googlebot 像任何 HTTP 客户端一样,在幕后处理国际脚本和胆量。这些字符是多字节的 UTF-8。
樱桃普罗玛温:谷歌的解析器灵活,会自动通过编码翻译中文字符、德语变音符号或表情符号。
樱桃普罗玛温:实际上,这和谷歌在爬取内容时做的事情是一样的,但网络上其他或更老的爬虫可能会感到困惑。为了在整个全球互联网基础设施中保持安全,你应该使用robots.txt规则中的编码版本。
加里·伊利斯:比如你想阻止爬行者访问——
樱桃普罗玛温:给你买个鸡肉表情。
加里·伊利斯:在这里,镜像服务器的期望,实际写入其百分编码形式。
樱桃普罗玛温:保持标准化,让每个说话robots.txt的机器人都尊重你的界限。如果他们连生鸡肉都处理不了,可能会无视整个禁止名单,直接爬行你想保护的所有东西。
加里·伊利斯:我对此完全没有补充。
加里·伊利斯:好了,让我们谈谈最重要的:生成式人工智能。
樱桃普罗玛温:每个人都想知道怎么和AI爬虫交流。我可以用robots.txt文件告诉AI模型,“嘿,你可以爬我的网站,但不要用我的鸡日记来训练你的生成模型”?
加里·伊利斯:这是个好话题。
加里·伊利斯:因此,根据RFC 9309的定义,robots.txt是一种访问偏好协议。它只告诉机器人,“你可以爬这个页面”,或者“你不应该爬这个页面”。
加里·伊利斯:它不会决定系统在爬取数据后如何处理。
加里·伊利斯:所以disallow直言不讳的意思是“禁止进入房间”。这和看我的鸡日记或把它放进数据库没关系。
樱桃普罗玛温:上海锅?
加里·伊利斯:是的,如果你让AI机器人爬取你的网站,它会把robots.txt处理成机器可读的文件,而不是任意的明文文件。
加里·伊利斯:如果你想阻止某个特定的 AI 爬虫完全访问你的页面,你必须在文件中明确针对它的特定用户代理令牌。
加里·伊利斯:你不能写个像“不——我——鸡——鸡日记”这种花哨的自定义规则。机器人的解析器会逐个字符把它扔进垃圾桶。
加里·伊利斯:该回顾一下了。
樱桃普罗玛温:你想先来吗?
加里·伊利斯:首先,行为良好的爬虫,包括 Googlebot,会使用 robots.txt 文件来限制爬取。
加里·伊利斯:其次,你的robots.txt文件应遵循官方互联网标准RFC 9309。
加里·伊利斯:最后,在规则路径中使用robots.txt表情符号和非英语字符的百分比编码,以确保所有爬虫安全。
樱桃普罗玛温:最后,最后,如果你想更好地了解robots.txt,请点击描述中的两个链接,并且请避免将你的ASCII艺术作品放入关键指令。
加里·伊利斯:我们就保持无聊吧。美得无聊。
樱桃普罗玛温:如果你有一段奇怪的源代码片段、奇怪的规则,或者一个绝对神秘的文件夹想让我们从非正典柜子里拉出来,请在下方留言。
加里·伊利斯:或者不做。我们不是在告诉你们该怎么生活。
樱桃普罗玛温:下一集,我们将谈论404。订阅获取更多内容。
加里·伊利斯:不可能还有更多。
樱桃普罗玛温:哦。
4001102288 欢迎批评指正
All Rights Reserved 新浪公司 版权所有