10 月 26 日晚上八点,3D 资源社区 Open3DLab 在自己站上发了一篇文章,数字写在标题里:一个自称 Roblox 的爬虫,从它和两个姐妹站搬走了 145 GB 模型,包括成人内容,事先没有问过1。
四个数字是全部起点:1,027 个文件、712 个项目、145.5 GB、34 小时。它们来自站点自己的服务器日志。站长写,完整日志已经导出,随时可以交给外部审计;日志本体没有公开,所以下面每条都要分清是日志读出来的,还是站长按日志讲的。
这只爬虫在礼貌这一侧做得很好。 它的 UA 是一整句自我介绍:
trellis2-data-sourcing/1.0 (3D foundation model research; [redacted]@roblox.com)。请求来自单个 AWS 地址;34 小时里发了 26,429 次请求,读完 18,926 个项目主页,按站长的说法差不多是全部目录。按平均值算,它每 4.6 秒发一次请求,比 robots.txt 里那条 Crawl-delay: 2 还慢。站点 10 月 18 日上午发现并封禁,它 19 日又来,20 日最后来一次,节奏贴着中欧的上班时间。站点发了两封邮件给 Roblox,两封都没有回复。它没守的,是同一份文件里写着「不许下」的那几行。 robots.txt 里有 23 个具名条目被整站封禁,从 GPTBot、ClaudeBot、CCBot、PerplexityBot 到 meta-externalagent、cohere-ai,每个后面都跟着
Disallow: /。第 24 个名字不在名单上,于是落进 User-agent: *:这一组先写 Allow: /,再列出不能走的路径,与项目文件直接相关的是 /project/file/download/、/serve_file/、/media/cache/、/project/mirror/download/ 四条,最后是 Crawl-delay: 22。站点的文件只能从这几个端点出来。所以那 1,027 次完整下载,每一次都落在 robots.txt 写着 Disallow 的路径上——这一步是推断,但它从站点结构里推出来,不是从站长的措辞里。
规范自己把这层关系写清楚了。RFC 9309 第一节的原句是
These rules are not a form of access authorization.;RFC 9110 把 UA 定义为自我描述,明文承认有人会 masquerade,判断权交给接收方34。两条放在一起,名单的性质就出来了:它只能挡住已经起过名字的爬虫。一个没起过名字的爬虫落在通配组里,拿到的是一张写着「允许」的条子,唯一被禁止的是真正出门的那几个路径——而它要的正是那几个。样本里没有筛过的痕迹。 712 个项目里,345 个带成人标记,占 48.5%,合计 62.6 GB,占全部字节的 43.0%;其中 224 个项目、364 个文件、54.8 GB 来自只放成人内容的 SmutBase。423 个项目只授权非商业使用,占 59.4%。全站 18,926 个项目,最后只有 712 个的文件被完整取走,占 3.8%1。
站长写了一句关键的话:在取回的样本里,成人项目被取走的比例与其他项目一样。这不是偏好,是采集时没有任何区分——没按年龄分级筛,没按许可筛,没按站点性质筛。而 Open3DLab 规定使用者必须年满 18 岁5;Roblox 在自己的 10-Q 里写:
We estimate that approximately 40% of our DAUs were under the age of 13 during the year ended December 31, 2024.6为什么是 3D。 站长给的解释是:公开的 3D 数据集不缺形状,缺的是能直接进生产管线的东西——带贴图的完整角色、绑好骨骼、附标题描述和预览图;这类素材大量只存在于社区站里,他的三个站正是这样的地方。
Roblox 做 3D 基础模型不是秘密,它自己的论文写清了合规取数长什么样。2025 年 3 月的 Cube 写:
We train our shape tokenizer on roughly 1.5 million 3D object assets that utilize a combination of licensed and public available datasets (e.g. Objaverse), as well as the free data assets that are available in Roblox Creator Store that are opted in for training.7 这句在 v1 里就是逐字相同的,不是后来补的。一年后的 CubePart 把来源列得更细,并且写明 restrict to permissively-licensed assets8。能证到哪一步要划清。UA 里的邮箱是 roblox.com 的地址,站长说它属于 Cube 论文 40 多位作者之一,但把名字涂掉了;请求来自 AWS,不是 Roblox 自己的网络;UA 可以随手写。
trellis2 与微软 2025 年底开源的 TRELLIS.2 同名,站长核对过那个仓库的数据工具包里没有爬虫、也没有 UA 字符串;我核到的文件清单与这个说法一致,里面只有下载、体素化、渲染这类脚本9。所以能证实的是:一个自称 Roblox 的爬虫,用一只为这件事写出来的 UA,取走了写在禁止清单上的文件。不能证实的是:谁下的指令、数据进了哪个模型、有没有文件真的进了训练集。站长把这三点都标成了推测。同一家机构写了两套账。 用户条款第 10.2(d) 条禁止任何人
access the Services using any means for the purpose of using Virtual Content in connection with the training, development, or use of machine learning models or artificial intelligence——禁止的是目的,不是手段,全文没有 scrape、crawl、spider 这些词。同一份文件的创作者条款第 2(b)(2) 条写的是另一件事:创作者一发布,就授予 Roblox 永久、全球、可再许可的许可,覆盖 in connection with the training, development, and use of machine learning and related models。附录 C 与 E 的第 14 条再补一句:Roblox reserves the right to text and data mining of the Platform and the Services and any kind of other provided content.10 对外禁止别人为训练取用,对内把创作者授权写成默认、永久、可转授,对自己保留挖掘权。三句话都不长,主语各不相同。「能不能删」官方给过三个版本:2024 年 7 月的论坛帖写免费资产入训
without the ability to remove from training11;现行 Creator Store 文档写退出后 Roblox will remove it from the training dataset within 30 days.12;Cube 论文写这些资产是 opted in。三种说法并存,公司没有解释差别。这不是文字游戏。Open3DLab 最实在的一句是:一个项目被创作者删除、被站方下架、或按版权通知移除之后,它从站点上消失了,但还留在别人的数据集里。删除只在它有路径的地方生效。
法律上,落点不在 robots.txt。 第九巡回法院 2022 年在 hiQ 案里写
the concept of "without authorization" does not apply to public websites,同一份判决的脚注写得更直:Adherence to the rules in a robots.txt file is voluntary; malicious bots may deliberately choose not to honor robots.txt rules and may in turn be punished with a denial of access to the website in question.13 合同这条路也不是万能钥匙:Meta 诉 Bright Data 在 2024 年 1 月被判 Bright Data 胜,理由是它只抓未登录可见的公开页面,而那份裁定的射程到「公开页面」为止,不包含已被 robots.txt 排除的下载端点14。本案的事实恰好落在射程之外。版权是最后一道,也是最贵的一道。Bartz 诉 Anthropic 在 2026 年 7 月 20 日获批 15 亿美元和解,法院写明单部作品估计赔付约 3,000 美元,是故意侵权法定赔偿下限的四倍15。它说明的不是「抓取会被罚」,而是「大规模复制的成本可以在事后折算成单价」——对一家付不起诉讼费的社区站,这张价格表没有意义。
欧洲给了一条更早的线。欧盟《人工智能法》第 53(1)(c) 要求通用模型提供者制定版权政策,并
identify and comply with, including through state-of-the-art technologies, a reservation of rights expressed pursuant to Article 4(3) of Directive (EU) 2019/79016。DSM 指令第 4(3) 条说的权利保留,序言第 18 段具体化为「元数据与网站或服务的条款」17。在欧洲市场上,机器可读的拒绝是法定义务的输入端,不是君子协定;这条义务指向模型提供者,不给美国境内的抓取创设诉权,但它把「有没有读过 robots.txt 并据此行事」变成了一个可以被问到的问题。反应面很薄。 主流科技媒体里,窗口内只有 Tom's Hardware 一家写了自有稿(北京时间 10 月 27 日 20:26),通篇以 Open3DLab 的文章为唯一信源,没有独立核实 UA 或日志,也没有 Roblox 的置评或「未回应置评」说明18。Hacker News 上那条帖在 10 月 27 日 23:00 是 363 分、218 条评论,两类质疑最集中:一类说站长把成人内容拿出来是为了激起情绪,一类问为什么单 IP 的 2.6 万次请求没有被限速挡住——第二类正问在点上,挡住它的确实只是限速,而限速是免费服务器的,不是站点的策略19。r/gaming 那条帖有 9,142 分、462 条评论,标题把 145 GB 写成了 117 GB20。
Roblox 一侧,截至北京时间 10 月 27 日 22:52,三处公开渠道都没有一个字:新闻室最新条目停在 10 月 21 日,@Roblox 在 10 月 15 日到 27 日之间发了 18 条原创帖、最新一条是万圣节活动,开发者论坛公告区最新主题是 10 月 19 至 23 日那一周的周报2122。投资者关系页面是脚本空壳,两次抓取都没读到列表,那一侧只能算没有核完,不能算没有发。
能挡住它的是三道门。 技术门:认证、限速、按文件发令牌、挑战式防护。Open3DLab 事后做的就是这件事——今天打开它的站点,先撞上的是一道写着
Making sure you're not a bot! 的工作量证明,脚本客户端过不去。写下来的规则一条都没少,起作用的是这道门。身份门:UA 只是自称,真正能认身份的是反查 DNS 再正向解析回同一 IP、公布并比对 IP 段、请求带密码学签名;Google 用第一种,Cloudflare 的 Verified bot 三种都认。这只爬虫守了 crawl-delay,却没有提供任何可被验证的身份,它的可信度全部来自那句自己写的 UA。采购门:任何要把第三方模型或数据集放进产品的公司,都能在合同里问三个问题——这批语料是哪一批,能不能点名;每一条的许可是什么,有没有非商业或禁止训练;删掉其中一条,走什么流程、多久生效。这三个问题不是修辞。第一个问题,Roblox 的论文自己回答过;第二个问题,423 个非商业许可写着答案;第三个问题,官方三个版本互相矛盾,等于没有答案。那只爬虫恰好把这三样都绕过去了。
名单挡住了 23 个有名字的爬虫,通配组挡住了几个路径,条款挡住了平台外的人,论文写明了合规取数的样子。这些都写在纸上,都读得到,都被读过。145.5 GB 还是从写着「不许下」的门口出去了,卡住它的是免费服务器的带宽。
下一次再看到「我们的模型只用授权数据」,可以先问一句:那批数据的许可,是哪一条,落在哪一份文件里,删的时候找谁。
References
- 1
- 2Open3DLab · robots.txt
open3dlab.com
- 3RFC 9309
rfc-editor.org
- 4RFC 9110 §10.1.5
rfc-editor.org
- 5Open3DLab · About / FAQ
open3dlab.com
- 6
- 7
- 8CubePart(arXiv 2605.28763)
arxiv.org
- 9microsoft/TRELLIS.2 · data_toolkit
github.com
- 10Roblox · Terms of Use
en.help.roblox.com
- 11Roblox DevForum · 2024-07-10
devforum.roblox.com
- 12Roblox · Creator Store 文档
create.roblox.com
- 13hiQ Labs v. LinkedIn(9th Cir. 2022-04-18)
cdn.ca9.uscourts.gov
- 14Meta v. Bright Data(N.D. Cal. 2024-01-23)
storage.courtlistener.com
- 15Bartz v. Anthropic · 最终批准令
assets-us-01.kc-usercontent.com
- 16Regulation (EU) 2024/1689 · Article 53
eur-lex.europa.eu
- 17Directive (EU) 2019/790
eur-lex.europa.eu
- 18Tom's Hardware
tomshardware.com
- 19Hacker News · 50256985
news.ycombinator.com
- 20r/gaming
reddit.com
- 21Roblox Newsroom
about.roblox.com
- 22@Roblox
x.com


Comments