这篇文章上次修改于 3 个月前,可能其部分内容已经发生变化,如有疑问可询问作者。
在哔哩哔哩首页头部如下位置有一个 Gif,每次刷新都不同。
通过检查发现他是异步加载的。
访问 api 后得到一个 json 数据。
然后使用 Python 进行爬取。
发起大量请求后发现,仅仅有 18 张是有效的,不重复。于是想可能是后端做了限制,缓存之内,防止在同一时间内造成过多插表命令,导致服务器压力过大。
透过前段时间泄露的 B 站后端源码分析,该 JSON 数据模型并没有发生改变。
再次查找发现 Dao 层存在 Redis 缓存,缓存了 icon 数据。
由此可以确定,重复的原因是因为 Redis 缓存,并且可以人为设置缓存内容,以便设置活动中的 Gif。在缓存过期时间内,无法通过此 api 获取其他 Gif。

亲亲留个评论再走呗

正在加载评论区...