python b站弹幕分析_【python】B站弹幕数据分析及可视化(爬虫+数据挖掘)

本文介绍了使用Python爬取B站视频弹幕并进行数据分析的过程,包括下载XML文件、处理弹幕信息、保存为CSV文件、进行词频分析、情感分析以及识别视频的精彩片段和高能时刻。通过词云图展示了高频词汇,情感分析显示积极弹幕占比过半,同时揭示了名场面和福利情节的特定时间点。
摘要由CSDN通过智能技术生成

成果展示

项目地址

爬取弹幕

可以看我之前写的这篇文章:10行代码下载B站弹幕

下载代码

# download.py

'''依赖模块

pip install requests

'''

import re

import requests

url = input('请输入B站视频链接: ')

res = requests.get(url)

cid = re.findall(r'"cid":(.*?),', res.text)[-1]

url = f'https://comment.bilibili.com/{cid}.xml'

res = requests.get(url)

with open(f'{cid}.xml', 'wb') as f:

f.write(res.content)

样例输入

样例输出

数据处理

下载弹幕文件51816463.xml后,我们打开看一下:

chat.bilibili.com

51816463

0

3000

0

0

k-v

长颈鹿呢?还是大象呢?(

我也不想的,实在是太大了呀

真是深不可测啊

此处省略很多字

可以看到xml文件中d标签的text部分就是弹幕的文本,而d标签的p属性应该是弹幕的相关参数,共有8个,用逗号分隔。

stime: 弹幕出现时间 (s)

mode: 弹幕类型 (< 7 时为普通弹幕)

size: 字号

color: 文字颜色

date: 发送时间戳

pool: 弹幕池ID

author: 发送者ID

dbid: 数据库记录ID(单调递增)

参数详解:

① stime(float):弹幕出现时间,单位是秒;也就是在几秒出现弹幕。

② mode(int):弹幕类型,有8种;小于8为普通弹幕,8是高级弹幕。

1~3:滚动弹幕

4:底端弹幕

6:顶端弹幕

7:逆向弹幕

8:高级弹幕

③ size(int):字号。

12:非常小

16:特小

18:小

25:中

36:大

45:很大

64:特别大

④ color(int):文字颜色;十进制表示的颜色。

⑤ data(int):弹幕发送时间戳。也就是从基准时间1970-1-1 08:00:00开始到发送时间的秒数。

⑥ pool(int):弹幕池ID。

0:普通池

1:字幕池

2:特殊池(高级弹幕专用)

⑦ author(str):发送者ID,用于"屏蔽此发送者的弹幕"的功能。

⑧ dbid(str):弹幕在数据库中的行ID,用于"历史弹幕"功能。

了解弹幕的参数后,我们就将弹幕信息保存为danmus.csv文件:

# processing.py

import re

with open('51816463.xml', encoding='utf-8') as f:

data = f.read()

comments = re.findall('(.*?)', data)

# print(len(comments)) # 300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值