想抓B站数据却总卡在接口上?这份B站API开源指南给出完整解法
【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api
做内容运营、写爬虫练手,或单纯想分析关注的UP主时,你是不是也遇到过这样的尴尬:想批量拉一份B站视频榜单,浏览器翻页翻到手酸;想查某位UP主的粉丝与投稿,却对着网页源码无从下手。这些需求的共同点,是都需要调用B站API——而B站API的认证、签名、参数规则,对新手并不算友好。
GitHub加速计划旗下的 bilibili-api 项目,正是为这个痛点而生。它把散落在B站各处的接口统一收集整理,用 Python 封装成一个个开箱即用的函数,还附带弹幕转字幕、视频下载、新番监控等现成脚本,把B站数据采集从"抓网页"升级成"调函数"。
先看清仓库里有什么
整个项目的能力可以分成三层:
| 能力层次 | 覆盖内容 | 使用门槛 |
|---|---|---|
| 免认证公开接口 | 用户信息、评论、排行、专题、直播状态 | clone 即用 |
| 需认证接口 | 视频详情、新番列表、搜索 | 需 appkey |
| 现成工具脚本 | 弹幕转 ASS、视频解析、番剧监控 | 按 README 运行 |
两分钟跑通第一个接口
先把仓库拉到本地:
git clone https://gitcode.com/gh_mirrors/bil/bilibili-api接着引入封装好的 python API/bilibili.py。下面这段代码解决"不登录也能查到用户信息"的问题,返回的是字段清晰的 User 对象:
info = GetUserInfoBymid(2) print(info.fans) # 粉丝数 print(info.article) # 投稿数 print(info.followlist) # 关注列表sex(性别)、rank(账号等级)、place(所在地)等字段一应俱全,不用再对着 JSON 层层取键。
三个高频数据场景的取法
① 视频评论批量导出。想分析评论区风向?GetAllComment(aid)一行拉全,翻页逻辑已内置;新接口GetComment_v2(aid, page, order)则支持按热门、按点赞排序。
② 弹幕内容结构化解析。把视频 cid 交给ParseDanmuku(cid),返回每条弹幕的时间戳、类型(滚动/顶部/底部)、颜色和文本,做弹幕词云、互动分析都很顺手。
③ 多条件排行筛选。GetPopularVideo(begintime, endtime, sortType, zone, page)支持按播放数、硬币数、弹幕数排序,并可锁定任意分区与时间窗口,追热榜、找选题不再靠肉眼。
完整的参数含义与分区编号对照表,都写在 api.md 里;再配合 README 中 Video、Comment、Bangumi、ZhuantiInfo 等数据类的定义一起读,理解成本会低很多。
数据拿到手之后,还能再玩一把
弹幕转字幕文件。运行 GetDanmuAss/GetAss.py,输入 av 号即可生成 ASS 字幕,挂进播放器就能看"本地满屏弹幕"。
视频地址解析。GetVideoUrl/biliDownLoad.py 输入视频 URL 返回下载地址;手机客户端离线缓存的视频碎片,则交给BiliMerge/BiliMergeFlv.py合并为完整文件。
其他可复用脚本:bilibili-po 爬取 UP 主关注关系网络、bili-monitor 监控新番更新动态、Alfred 目录下还有现成的热搜与搜索 workflow 可直接导入。
三个避坑提醒
- 项目已停止维护,接口随时可能失效,更适合作为学习参考而非生产依赖;
- 老评论接口有 av 号限制,仅支持 av 号小于 3280075 的视频,新视频请改用
GetComment_v2; - 需认证的接口要按 api.md 里的算法生成 sign 签名,否则会返回
-3错误;调用频率也请保持克制,别给服务器添负担。
想亲自体验"一行代码拿到整个B站数据"的感觉,现在就 clone 仓库,从第一个函数开始吧。
【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考