当前位置: 首页 > news >正文

5分钟拿下B站热门数据:这套Python API工具箱把榜单、评论、弹幕全给你备好了

5分钟拿下B站热门数据:这套Python API工具箱把榜单、评论、弹幕全给你备好了

【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api

想抓B站的热门视频、用户资料和弹幕,却不想从零啃接口文档?这套bilibili-api项目把散落各处的B站接口整理成了开箱即用的Python函数——读完这篇文章,你能立刻拉出指定分区的热门榜单、抓全某条视频的全部评论、把弹幕转成ASS字幕文件,全程只需要会写几行调用代码。

先说个扎心的真相:自己造轮子的人,多半掉进了坑里

很多人第一次想"碰"B站数据,脑子里都是这么想的:不就是个爬虫嘛,用 requests 把页面拉下来,正则一抠,完事。

然后现实会啪啪打脸。

你会发现:有的接口要签名校验,参数顺序错了直接 403;有的数据藏在 JSON 的第三层嵌套里,解析到怀疑人生;更别提那个经典的"官方文档说 ver=3,实测 ver=1 才能拿到数据"的玄学问题。等你折腾完这些,兴趣早就被磨没了。

这套项目存在的意义,就是帮你把"踩坑"这个步骤整个跳过——作者已经把接口地址、参数规则、返回结构、签名算法全部摸了一遍,你只需要对着现成的函数清单点菜。

先看看后厨菜单:三类接口,三种取法

把 B 站比作一家餐厅的话,这套 API 就是后厨的万能点菜单,而且分成了三档:

第一档:不掏钱也能吃(无需认证)

  • 拉取视频排行榜单、按条件筛选视频
  • 读取视频评论、专题信息、用户基本信息
  • 解析弹幕内容

第二档:需要"会员卡"(appkey + AppSecret)

  • 视频完整详情、新番信息、排行数据
  • 关键词搜索视频和专题

第三档:自己动手翻冰箱(直接爬页面整理)

  • 按时间区间爬取视频排行
  • 按年份月份获取新番列表

这三档在api.md里写得清清楚楚,连每个参数的含义、可选项、返回字段都有标注——文档本身,就是项目最值钱的部分之一。

两行命令,把代码库请进家门

先把仓库拉到本地:

git clone https://gitcode.com/gh_mirrors/bil/bilibili-api

然后你只需要关心python API/目录,它里面躺着三个核心文件:

  • bilibili.py—— 所有 API 函数都在这,照着函数名用就行
  • biclass.py—— 定义了一堆现成的数据类:User、Video、Comment、Bangumi、Danmu 等
  • support.py—— 底层的请求、JSON 解析、签名等杂活,一般不用你碰

用的时候就像这样:

from bilibili import *

完了,准备工作结束。就这么简单。

实战一:把"最近一周最火的视频"搬到你面前

这是项目里最经典的入口函数,也是我建议你上手敲的第一个:

GetPopularVideo(begintime, endtime, sortType=TYPE_BOFANG, zone=0, page=1, original=0)

翻译成人话就是:在某个时间段里,按某种排序方式,取出某个分区的第几页视频

举个例子,想看看 2024 年 1 月上半个月播放量最高的视频:

videoList = GetPopularVideo([2024,1,1], [2024,1,15]) for video in videoList: print(video.title, video.guankan)
  • begintimeendtime是三元数组[年, 月, 日]
  • sortType决定了排序维度,项目里已经给你备好了现成的常量:
常量排序依据
TYPE_BOFANG播放数
TYPE_SHOUCANG收藏数
TYPE_DANMU弹幕数
TYPE_PINGLUN评论数
TYPE_YINGBI硬币数
TYPE_PINGFEN用户评分
  • zone是分区编号,想只看动画就填1,游戏填4,科技填36,具体分区对照表在 api.md 里有完整清单
  • original设为 1 可以只筛原创投稿

一个小提醒:TYPE_PINYIN(拼音)和TYPE_TOUGAO(投稿时间)这两种排序方式比较"挑食",只能用在二级分区上,综合排名和一级分区会直接返回空列表——这不是 bug,是接口本身的限制,作者在源码里已经帮你挡掉了。

实战二:评论区和弹幕,一个都别放过

热门榜单看完了,接下来自然是"扒评论区"。

新接口推荐用这个,走的是官方新版评论 API,返回结构更干净:

commentList = GetComment_v2(aid, page=1, order=0) for comment in commentList.comments: print(comment.post_user.name, ':', comment.msg)

order支持1(按热门)和2(按点赞数)排序。如果你不满足于一页,还有一条GetAllComment会自动帮你把多页评论全部翻完,不过它内部会循环请求,慢是慢了点,省心是真省心。

接着上硬菜——弹幕。老读者应该都知道,看视频没弹幕等于白看,做数据分析更是离不开它。项目里提供了三级递进的弹幕玩法:

# 第一级:拿原始弹幕 XML xml_content = GetDanmuku(cid) # 第二级:解析成结构化对象,按时间排好序 danmu_list = ParseDanmuku(cid) for d in danmu_list: print(d.t_video, d.content) # 出现时间、弹幕内容 # 第三级:直接转成 ASS 字幕文件,丢给播放器用 Danmaku2ASS(GetDanmuku(cid), 'output.ass', 640, 360)

弹幕对象里连弹幕类型都分好了:1是滚动、5是顶端、4是底部,颜色、时间戳、用户ID 的 CRC 值全都有。想做"弹幕情感分析""弹幕高频词统计"的话,素材已经喂到你嘴边了。

想省事的话,仓库里还单独放了一个GetDanmuAss/GetAss.py工具,输入 av 号就能直接生成本地弹幕播放用的 ASS 文件,连代码都不用写。

顺手还能干这些:一张越挖越深的隐藏清单

排行榜和弹幕只是冰山一角,这套工具箱里还埋了不少实用功能,随手列几个:

  • 查用户底细GetUserInfoBymid(mid)拿到用户的粉丝数、投稿数、关注列表;GetVideoOfUploader(mid)翻出某个 UP 主的全部投稿
  • 直播状态探测HasLiving(mid)看一个人开没开直播,IsLiving(mid)还能顺带返回直播间标题和封面
  • 视频下载地址解析GetBilibiliUrl(url, appkey)输入视频页面地址,输出真实的下载链接,配套的还有GetVideoUrl/biliDownLoad.py独立工具
  • 新番跟踪GetBangumi(appkey, btype, weekday)按周几拉新番,GetBangumiInfo(bgm_id)获取一整季番剧的剧集详情
  • 承包榜数据GetSponsorInfo(aid)能拉出某部番的承包用户名单,做"谁是真爱粉"分析绰绰有余
  • 全站在线人数GetOnlineUser()一行代码拿到当前网页在线和播放在线人数

往仓库外面看,作者还把 API 玩出了更多花样:bilibili-po/里有一套完整的UP主关注关系网爬取+分析脚本(连分析代码都写好了),bili-monitor/是自动监视新番数据的小机器人,bili_live_guaji/是直播经验挂机脚本,甚至还有几个现成的 Alfred Workflow 放在Alfred/目录下——查番剧、搜视频都能用快捷键呼出来。

动手之前,把这几条潜规则记在小本本上

  1. 认准接口的"含金量":排行榜、评论、弹幕、用户信息这些免认证的接口随便玩;但GetVideoInfoGetBangumibiliVideoSearch这类需要 appkey 和 AppSecret,没有的话可以先跳过,不影响体验大头。
  2. 悠着点刷:尤其GetAllComment这种会自动翻页的,内部都帮你加了time.sleep(0.5)控速——别嫌它慢,这是对服务器最基本的尊重。自己写循环时也记得限个速。
  3. 心态摆正:项目已经停止维护了,B站接口这些年改版了不少次,个别老接口可能已失效。它的价值在于学习接口设计的思路、复用现成的解析逻辑,而不是当生产环境依赖来供着。
  4. 文档是宝:遇到函数参数记不清,别瞎猜,直接翻 api.md,每个接口的输入输出都写得明明白白,比很多商业 SDK 的文档都实在。

下一步,该你上场了

这套项目最妙的地方在于:你不需要懂签名算法,不需要会写正则,甚至不需要理解 JSON 的层层嵌套——你需要的只是一句"我想看什么数据",然后去bilibili.py里找到对应的函数名。

所以别光看了,动手吧。先把那段GetPopularVideo跑起来,把你所在分区的热门榜单拉一份;再挑一个你常看的视频,用ParseDanmuku拆一拆它的弹幕。跑通这两个,你就算真正入门了——接下来是深挖评论情感,还是分析 UP 主关系网,就看你自己的想象力了。

毕竟,数据这东西,看别人文章一百遍,不如自己跑通一行代码。

【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1393370/

相关文章:

  • BG3ModManager完全解析:从加载顺序崩溃到模组管理大师的上手指南
  • PDF补丁丁免费PDF工具箱:新手到老手的5关通关指南
  • R语言绘制热力地图复合气泡饼图:空间数据多维度可视化实战
  • 闲置包包变现怎么选?上海主流回收平台优缺点详解 - 日常前沿快讯
  • Bootstrap Colorpicker 终极使用指南:从三行初始化到事件监听与扩展全掌握
  • C++实现康威生命游戏模拟器:从高斯帕滑翔机枪到细胞分裂
  • 软件测试方案全攻略:从核心要素到实战模板,告别救火式测试
  • Everybody看过来,2026约课系统哪个软件好呢?
  • Amazon Bedrock成本优化实战:批量推理与提示缓存降低模型推理成本
  • Pyti指标对比:MACD与RSI在趋势分析中的应用差异
  • 2026 年 8 月 TIOBE 编程语言排行:OCaml 和 Zig 有望进前 20,MATLAB 十多年首跌出
  • 免费开源AI图像增强工具Upscayl完整上手指南:4倍超分修复模糊老照片与低清截图的实战攻略
  • S2-045漏洞检测工具:原理、设计与Python实现
  • AI规则失效的根源与优化:从Prompt工程到协作协议设计
  • DouK-Downloader快速上手指南:抖音TikTok批量下载与数据采集全攻略
  • AI 不会替代程序员,但会重新筛选程序员
  • 2026年8月市场拼盘餐具企业怎么选择,小碗菜餐具/快餐盘/快餐店餐具/机关餐厅餐具/密胺餐具,拼盘餐具工厂有哪些 - 企业权威推荐大使
  • Python-docx安装全攻略:从虚拟环境到依赖编译的完整解决方案
  • NSudo 系统管理工具完全上手指南:从权限管理到开发实战
  • 5 步上手 res-downloader:免费开源跨平台资源嗅探与下载完整指南
  • 大模型流式输出技术解析:从SSE协议到前端ReadableStream实践
  • 免费PDF处理工具实战:200页论文、加密合同、歪斜扫描件一次收拾干净
  • QQ空间说说备份全攻略:用GetQzonehistory三步拿回你的全部历史记忆
  • 基于Claude Code的Agentic编码实践:上下文工程四大构件详解
  • Android APK签名机制与系统级应用在线调试实战指南
  • Vue SPA后台管理系统登录鉴权实战:从axios封装到路由守卫
  • howm窗口管理器核心功能解析:从Vim模式到高效窗口管理
  • Java开发中ClassCastException异常深度解析与解决方案
  • 2026蝶阀厂家选购避坑指南:手动/电动/真空蝶阀甄选攻略 - 选型|行业|价格|案例
  • Python-docx安装全攻略:从环境配置到问题排查