哔哩视奸小助手:一款 Bilibili 用户评论分析利器

哔哩视奸小助手:一款 Bilibili 用户评论分析利器
拾璃哔哩视奸小助手:一款 Bilibili 用户评论分析利器
想快速了解一位 B站 用户都在评论些什么? 今天给大家推荐一款简单易用的桌面应用程序: 哔哩视奸小助手 它可以帮助你轻松抓取指定用户的评论数据,并生成词云图,快速了解用户的评论热点和语言习惯。
项目简介
哔哩视奸小助手 是一款专为分析 Bilibili 用户评论数据而设计的 Windows 桌面应用程序。 你只需要输入目标用户的 UID,程序就会自动抓取该用户的所有评论历史,将其保存为 Excel 文件,并生成一张直观的词云图。
功能特性
- 图形化界面: 简洁美观的用户界面,操作简单易上手。
- 一键数据抓取: 输入目标用户的 Bilibili UID,即可自动从第三方 API 获取全部评论数据。
- 导出到 Excel: 将抓取到的评论数据(包括内容、时间、点赞数等)整理并保存为
.xlsx格式的文件,方便后续筛选和分析。 - 智能词云生成: 自动对评论文本进行预处理(如去除表情符号、回复格式),并生成一张高分辨率的词云图片,核心词汇一目了然。
- 实时进度反馈: 界面内的日志窗口会实时显示抓取和分析的进度,任务状态清晰可见。
- 个性化定制: 拥有定制的背景图片和窗口图标,界面更具特色。
- 位置记忆: 程序能记住上次关闭时的窗口位置,方便下次使用。
运行环境与文件要求
- 操作系统: Windows
- 必备文件: 为了保证程序正常运行,请确保以下文件与
哔哩视奸小助手.exe放置在同一个文件夹内:msyh.ttc: 微软雅黑字体文件,用于生成中文词云。xz.ico: 程序的窗口图标文件。xz.jpg: 程序的背景图片文件。
注意: 本程序是已编译的
.exe版本,你无需安装 Python 或任何库即可直接运行。
如何使用
- 准备文件: 确保
哔哩视奸小助手.exe,msyh.ttc,xz.ico, 和xz.jpg这四个文件都在同一个文件夹里。 - 运行程序: 双击
哔哩视奸小助手.exe启动程序。 - 输入 UID: 在 “请输入B站UID:”下方的输入框中,填入你想要查询的B站用户的UID。
- 开始分析:
- 点击 “开始” 按钮。
- 程序会弹出一个窗口,让你 选择一个文件夹 用于保存结果。
- 选择好文件夹后,程序将自动开始抓取数据和生成词云,你可以在下方的日志框中看到实时进度。
- 查看结果: 任务完成后,在刚才选择的文件夹中会生成两个文件:
[UID]_评论数据.xlsx: 包含所有评论数据的 Excel 表格。[UID]_评论数据.png: 根据评论内容生成的词云图片。
核心代码解析
让我们深入了解一下这个工具背后的核心代码 (main.py),重点分析两个核心函数:
fetch_data(uid, max_per_page=500, log_callback=None, loading_callback=None)该函数负责从 Bilibili 的第三方 API 获取指定用户的评论数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35def fetch_data(uid, max_per_page=500, log_callback=None, loading_callback=None):
base_url = "https://api.aicu.cc/api/v3/search/getreply"
all_replies = []
page_number = 1
while True:
response = requests.get(base_url, params={
'uid': uid,
'pn': page_number,
'ps': max_per_page,
'mode': 0
})
if response.status_code != 200:
log_callback(f"请求失败,状态码: {response.status_code}")
return None # 返回 None 表示查询失败
data = response.json()
if data.get('code') != 0:
log_callback(f"错误代码: {data.get('code')}")
return None # 返回 None 表示查询失败
replies = data['data']['replies']
all_replies.extend(replies)
if data['data']['cursor']['is_end']:
break
loading_callback(f"查询中... {LOADING_CHAR[page_number % len(LOADING_CHAR)]}") # 更新加载动画
page_number += 1
time.sleep(0.1) # 适当的延时
return all_replies- 核心逻辑: 通过循环分页请求 API,直到获取所有评论数据。
- 依赖: 使用
requests库发送 HTTP 请求。 - 错误处理: 检查 HTTP 状态码和 API 返回的错误码,及时报告错误。
- 回调函数: 使用
log_callback和loading_callback函数,实时更新 UI 界面上的日志信息和加载动画。 - API 地址: 使用
https://api.aicu.cc/api/v3/search/getreply。
generate_word_cloud(file_path, log_callback=None)该函数负责从 Excel 文件中读取评论数据,并生成词云图片。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41def generate_word_cloud(file_path, log_callback=None):
log_callback("正在进行分析......")
df = pd.read_excel(file_path)
df['message'] = df['message'].fillna('') # 填充缺失值
# 使用正则表达式过滤表情包和回复
def filter_text(text):
if not isinstance(text, str):
return '' # 如果不是字符串,返回空字符串
text = re.sub(r'
$$
.*?
$$
', '', text) # 移除表情包,例如 [doge]
text = re.sub(r'^回复 @.+?:\s*', '', text) # 移除 "回复 @用户名 :"
return text
df['message'] = df['message'].apply(filter_text)
text = ' '.join(df['message'])
log_callback("云图生成中......")
# 增加图片分辨率
wordcloud = WordCloud(width=8000, height=4000, background_color='white', font_path='msyh.ttc').generate(text)
# 保存词云图片
output_file_path = os.path.splitext(file_path)[0] + ".png"
def save_wordcloud_to_file():
# 调整 matplotlib 显示尺寸
plt.figure(figsize=(20, 10))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
# 保存高清图片到xlsx同一目录下
plt.savefig(output_file_path, dpi=300) # 可以选择保存,dpi越高越清晰
plt.close() # 关闭图像,防止显示
log_callback(f"词云已保存到 {output_file_path}")
# 使用 root.after 将 Matplotlib 代码放到主线程中执行
root.after(0, save_wordcloud_to_file)- 核心逻辑: 读取 Excel 数据,清洗文本,生成词云,保存图片。
- 依赖: 使用
pandas库读取 Excel 文件,使用wordcloud库生成词云,使用matplotlib库保存图片。 - 文本清洗: 使用正则表达式去除评论中的表情符号和回复信息,提高词云质量。
- 字体: 依赖
msyh.ttc字体文件显示中文。 - 多线程: 使用
root.after将绘图操作放到 Tkinter 的主线程中执行,避免 UI 阻塞。
注意事项
- API 依赖: 本工具的数据来源于第三方 API (
api.aicu.cc)。如果该 API 服务不稳定或失效,可能会导致程序无法正常工作。 - 网络要求: 程序在运行时需要连接到互联网。
- 处理时间: 对于评论数量非常庞大的用户,数据抓取和分析过程可能会持续较长时间,请耐心等待。
- 字体文件:
msyh.ttc字体文件对于生成正确的中文词云至关重要,请勿删除或改名。 - 背景图片来源: 软件背景图片来源于画师 未确认_Sora (感谢画师!),使用请注意版权。
总结
哔哩视奸小助手 是一款简单实用的 Bilibili 用户评论分析工具。 它可以帮助你快速了解用户的评论内容和特点,适合用于研究用户行为、分析社区氛围等场景。 如果你对这款工具感兴趣,不妨下载体验一下!
声明: 本博客文章中如有任何涉及版权的内容,请立即联系 admin@main.712521.xyz,我们将尽快处理。




