本文采用CC-BY-NC-SA 4.0协议,转载请注明出处喵~(=^・ω・^).
前言
本文含有 AI Generated 内容,使用 GPT 和 Gemini 负责数据获取和数据分析,正文是手敲的,读者可以放心.
Fluu喜欢使用半角英文符号(排版方便),如观感不适请立即退出.
萬里河山 千代人物
绪论
Fluu想收集一些神秘网页,看了看自己 $1600$ 多个网页的收藏夹,决定开一个repo.
但这么做是不持久的,Fluu必须找一个稳定的源头.
哪里的神秘网页最多呢?当然是洛谷的个人简介.
于是这篇文章诞生了,收集神秘网页才是Fluu本来的目的,分析用户特征是顺带的事.
正文
定义有效用户为能看到个人简介的用户.
定义无效用户为看不到个人简介的用户.
无效用户有以下几种情况:
- 找不到用户(主动销号)
- 该用户已被封禁(封号斗罗)
- 该用户未通过实名认证(不是真人)
- 用户不可见或请先登录(隐藏自己)
截至 $2026$ 年 $1$ 月 $18$ 日 $11:55\,(\mathrm{UTC}+8)$ ,洛谷用户总注册量大致为
各种用户占比为:

笔者个人推测找不到用户其实是销号了.洛谷销号的流程比较麻烦,限制也很多,可以参考官方文档,所以洛谷销号的人非常少,符合占比.
无效用户能爬到的信息如下:
1 | { |
没有任何有效信息,账号注册的时间戳也只能通过之上之下最近的有效用户推断,所以下面的分析只基于有效用户.
注册
每年的洛谷用户注册量图表如下:

洛谷在蒸蒸日上.
我们也可以看到OI的旺季和淡季,往往从每年7月开始,持续好几个月.
但 $2025$ 年的洛谷注册量暴涨,发生了什么?这很耐人寻味.
颜色&badge
洛谷的名字颜色有以下几种:
1 | 灰色 蓝色 绿色 橙色 红色 紫色 棕色 |
我们统计了洛谷各种名字颜色的占比:

用户可以有badge,即名字右侧用颜色做背景的文字.
洛谷有badge的用户只有 $371$ 个,可谓相当少了.
给出所有badge的词云:

关注
每人平均关注 $5.796$ 个其他用户,然而关注用户的中位数是 $0$ .

每人平均获得 $6.716$ 粉丝,为什么和关注不一致呢?可能是不可见的用户关注了.
粉丝的中位数也是 $0$ .

咕值
洛谷用户咕值的分布为:

平均数为 $87.521$ .
不知道为什么Fluu看到这张图就想笑,叉出去.
钩子
注意:由于部分选手藏钩子,本条目数据可能有严重偏差.
绘制同时有钩子和气球的用户的分布为

能看出来CCF评级和XCPC评级有较大的相关关系.
绘制所有有钩子或气球用户的分布为

可以看到洛谷的主要用户仍然是小学生和初高中生.
定义可检测到藏钩子的人为明面上ccfLevel和xcpcLevel都是0,这样洛谷前端就不会渲染这个用户的钩子和气球,但是点开个人简介能看到得过奖的人.
可检测到藏钩子的人数为 $1681$ .
刷题量
首先统计所有精确刷题量的人数,然后对坐标取对数计算,绘得图像如下:

居然真有刷 $1W$ 题目的神仙,平均刷题数为 $79.502$ ,中位数为 $17$.
等级分
等级分就图一乐.
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,$ — 某不知名OIer
定义活跃用户为至少打过6场比赛的用户.
洛谷活跃用户的rating分布图为:

洛谷名字颜色只和咕值有关,而等级分对咕值的影响十分有限,所以洛谷等级分没有特别的趋向,比如上红就收手的人,整体大致就体现为正态分布了.
我们用名字颜色对等级分图表染色后的rating分布图为:

可以看到等级分对于咕值有影响,但不多,整体叠的很紧.
头像
挖坑,正在尝试训练相关模型.
撞头像的概率
在洛谷,随机两个人撞头像的概率是多少?
我们首先明确撞头像的定义:
狭义撞头像:两个头像完全相同.
广义撞头像:两个头像表达的人物/动物/物品相同.
按照定义依次计算.
默认头像
狭义撞头像
广义撞头像
野榜
Fluu根据数据创建了几个野榜,不妨来看看里面有没有你.
因为这个榜一没公信力,二没时效性,所以看个乐就好,受限于篇幅只展示前100名.
过题数最多
奖项数量最多
比赛参加最多
关注最多
粉丝最多
个人简介最长
附录 PostScript
特异字符
爬取用户slogan的时候发现了一些神秘的字符,大家真是什么都能找出来.
1 | ㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰ |
爬虫…?
访问洛谷的爬虫协议,可以看见以下内容:
1 | User-Agent: * |
Fluu的爬虫只爬取 https://www\.luogu\.com/user/\d+ ,是符合网站规范的.
而且Fluu的爬虫单线程爬了十多天才把数据爬完,对洛谷的影响可以忽略不计.
多线程…
Fluu不是没试过多线程爬虫,但不知道为什么更慢,最后改回单线程的了.
Fluu闲聊的时候会和其他同学汇报爬取进度,开了多线程之后明显变慢了,而且为了维持”Fluu单线程”这个flag还要伪造时间戳,具体地,在powershell中执行以下命令:
1 | PS D:\SucksFluorine\python\PJ1\.venv\Scripts> $(Get-Item "signatures.txt").LastWriteTime = "1999/01/01 10:30:00" |
上面的语句就是在修改”修改时间”戳.
最后发现这种办法又慢又麻烦,改回单线程了.
后来发现使用cmd直接跑python比pycharm跑python爬数据要快很多倍,原因未知.
<存疑>洛谷最神秘的用户
Fluu的爬虫没有处理异常,所以碰到这个特殊的用户直接15s超时结束程序了.
还好Fluu保存数据的形式是”每爬到一个用户就在文件末尾加一行”,不至于彻底裂开.
在讨论中,有人指出了洛谷有另一个神秘链接,点进去也会爆502.
这或许能开一期洛谷规则怪谈.
UPD20260129:问题疑似被修复,Fluu随机两个时间访问都返回”用户不可见或请先登录”.
会有下篇吗?
上文神秘用户讨论中,有人希望Fluu能爬一下团队名字.
UPD20260129:下篇来了,链接
数据下载
为防范麻瓜,AI和bot,你需要通过特别的人机验证才能获得下载链接.
具体地,你需要解答这个题目,找到flag(保证有解)并正确提交拿到这个题的后门(backdoor)字符串后,把后门字符串提交到这个页面来获得下载链接(听起来很麻烦,实际上只需要做一道题就行了).
本文数据包含:
- 爬到的数据
- 爬虫代码
- 画图代码
为防范CS某N,Fluu不能分享博客的markdown文件.
特别注意:
- 由于爬自己的user值会额外返回realname,email,phone等敏感信息,Fluu对数据集中关于自己的部分数据做了一点必要的修改.
- 由于上文神秘用户的存在,Fluu跳过了这个用户,没有ta的数据.
- 由于前期测试多线程的时候收到了两个429,部分数据的顺序有点混乱,不过有uid,问题不大.
- 由于Fluu不卖课,私聊Fluu要数据是无效的.
后门字符串的生成方式:
1 | import secrets |
FluuArchive
这是一个收集神秘小网页的repo,目前是周更,致力于收集可能对大家有所帮助的网页,比如小游戏,或有意义的网站等,欢迎提交issue描述你认为好玩或能有所收获的网页,博文等.
没有NSFW内容,但网站可能有广告,在所难免…
我有个想法…
Fluu很希望与你合作!直接私信NaraFluorine即可.
致谢
Chat-GPT(Code大神)
Gemini3-fast(Code大神)
GHL(Crypto大神)
neise1(PWN大神)
LawrenceSivan(测试了特殊的用户链接)
chaoson(提供情绪价值)
kkksc03(for the Luogu platform)
python(任劳任怨)
All of you(广大用户为Fluu提供数据来源,Fluu在此谢过了)