前言

最近在研究 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 签名生成流程后,不仅能够采集评论数据,也能够进一步分析视频详情、用户信息等相关接口。

后续准备继续研究:

* 视频详情接口
* 用户信息接口
* 搜索接口
* 数据可视化分析

欢迎交流学习。


Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐