【Python爬虫实战】B站评论采集器开发全过程(WBI签名+游标翻页+GUI界面)
前言
最近在研究 B站 WBI 签名机制时,顺手开发了一个 B站评论采集软件。
与传统命令行脚本不同,本项目采用 GUI 图形界面设计,无需修改代码即可完成评论采集。
目前已经支持:
✓ 输入视频链接一键采集
✓ 自动解析BV号
✓ 自动生成WBI签名
✓ 自动翻页获取评论
✓ 评论内容导出CSV
✓ 点赞数统计
✓ 回复数统计
✓ 评论层级解析
✓ 发布时间采集
适用于:
- 舆情分析
- 热门视频评论研究
- 用户行为分析
- 数据挖掘
- 评论关键词统计
下面介绍项目实现思路。
一、项目效果展示
输入视频链接:
https://www.bilibili.com/video/BV1maE169Eng
程序自动完成:
获取视频信息
↓
生成WBI签名
↓
获取评论数据
↓
自动翻页
↓
导出CSV
运行效果:
导出结果:

二、整体实现思路
项目架构设计
为了方便后续功能扩展,项目采用模块化设计。
整体架构如下:
GUI界面层
↓
业务逻辑层
↓
WBI签名模块
↓
评论采集模块
↓
数据处理模块
↓
CSV导出模块
各模块职责如下:
| 模块 | 功能 |
|---|---|
| GUI界面 | 用户输入视频链接、显示采集状态 |
| WBI签名模块 | 自动生成w_rid签名 |
| 评论采集模块 | 请求评论接口并获取数据 |
| 数据处理模块 | 提取评论字段并格式化 |
| CSV导出模块 | 导出结构化数据 |
三、评论接口分析
抓包后可以定位到评论接口:
https://api.bilibili.com/x/v2/reply/wbi/main
如果直接请求评论接口:
https://api.bilibili.com/x/v2/reply/wbi/main
通常会返回:
{
“code”: -403
}
原因在于:
B站评论接口已经接入WBI签名校验。
请求中必须携带:
wts
w_rid
否则服务器会认为请求非法。
因此在开发评论采集器之前,需要先解决WBI签名问题。
主要参数如下:
| 参数 | 说明 |
|---|---|
| oid | 视频AV号 |
| type | 评论类型 |
| pagination_str | 翻页参数 |
| plat | 平台标识 |
| web_location | 页面来源 |
| wts | 当前时间戳 |
| w_rid | WBI签名 |
其中:
wts
w_rid
属于动态参数。
如果签名错误:
{
"code": -403,
"message": "请求非法"
}
接口会直接拒绝访问。
四、WBI签名分析
开发过程中遇到的问题
在开发过程中主要遇到了两个问题:
1、WBI签名失效
B站接口会动态校验:
wts
w_rid
如果签名错误会直接返回:
{
"code": -403
}
因此需要实时获取最新的 mixin_key。
2、评论翻页问题
评论接口采用游标翻页机制。
与传统:
page=1
page=2
不同。
必须不断获取:
next_offset
才能实现全量评论采集。
五、评论自动翻页实现
评论接口采用游标翻页机制。
返回结果中包含:
cursor
对象。
其中:
next_offset
用于获取下一页评论。
逻辑如下:
请求第一页
↓
获取next_offset
↓
请求下一页
↓
继续获取next_offset
↓
直到is_end=True
这样即可实现全量评论采集。
相比传统页码翻页:
page=1
page=2
page=3
游标翻页更加稳定。
六、评论数据提取
项目目前支持提取以下字段:
| 字段 | 说明 |
|---|---|
| 评论ID | 评论唯一标识 |
| 用户名 | 发布评论的用户 |
| 评论内容 | 评论文本 |
| 点赞数 | 评论获赞数量 |
| 回复数 | 评论回复数量 |
| 评论层级 | 一级评论 / 二级评论 |
| 发布时间 | 评论发布时间 |
通过这些数据可以进一步实现:
评论分析
用户行为分析
热点评论统计
词云分析
情感分析
七、CSV导出
采集完成后,将评论数据整理为结构化格式:
{
"用户名": "",
"评论内容": "",
"点赞数": "",
"回复数": "",
"评论层级": "",
"发布时间": ""
}
随后导出:
视频标题.csv
支持直接使用 Excel 打开。
对于后续数据分析非常方便。
八、项目亮点
目前版本已经实现:
✓ GUI图形界面
✓ 自动解析BV号
✓ 自动生成WBI签名
✓ 评论自动翻页
✓ 评论层级解析
✓ CSV导出
✓ 多字段数据采集
九、总结
开发心得
通过本项目可以发现:
对于现代 Web 接口采集而言,真正的难点往往不在于数据解析,而在于接口签名与风控机制的处理。
掌握 WBI 签名生成流程后,不仅能够采集评论数据,也能够进一步分析视频详情、用户信息等相关接口。
后续准备继续研究:
* 视频详情接口
* 用户信息接口
* 搜索接口
* 数据可视化分析
欢迎交流学习。
更多推荐



所有评论(0)