哔哩哔哩弹幕处理+情感倾向分析

1.首先获取某一视频的弹幕

用此方法获取B站视频的XML弹幕
在这里插入图片描述

2.弹幕解析部分

将xml弹幕解析,并写入csv文件
代码部分:

import xml.etree.ElementTree as ET
import csv
import time
tree = ET.ElementTree(file='Test.xml')
root = tree.getroot()
# print(root.tag,root.text,root.attrib)
f = open('哔哩哔哩XML弹幕输出.csv','w',encoding='utf-8',newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(["弹幕内容","秒数","弹幕模式","字号","字体颜色","时间戳","弹幕池","发送者ID","弹幕在弹幕数据库中rowID"])
neirong = root.findall('d')
for i in neirong:
    # print(type(i.attrib)) 字典类型
    notcut = i.attrib['p']
    cut = notcut.split(",")
    unix_timestamp = int(cut[4])
    beijing_time = time.localtime(unix_timestamp)
    beijing_time = time.strftime("%Y-%m-%d %H:%M:%S",beijing_time)
    print(cut)#列表类型
    csv_writer.writerow([i.text,cut[0],cut[1],cut[2],cut[3],beijing_time,cut[5],cut[6],cut[7]])
    # 第一个参数是弹幕出现的时间 以秒数为单位。
    # print(alone[])
    # 第二个参数是弹幕的模式1..3 滚动弹幕 4底端弹幕 5顶端弹幕 6.逆向弹幕 7精准定位 8高级弹幕
    # 第三个参数是字号, 12非常小,16特小,18小,25中,36大,45很大,64特别大
    # 第四个参数是字体的颜色 以HTML颜色的十位数为准
    # 第五个参数是Unix格式的时间戳。基准时间为 1970-1-1 08:00:00
    # 第六个参数是弹幕池 0普通池 1字幕池 2特殊池 【目前特殊池为高级弹幕专用】
    # 第七个参数是发送者的ID,用于“屏蔽此弹幕的发送者”功能
    # 第八个参数是弹幕在弹幕数据库中rowID 用于“历史弹幕”功能。

for i in neirong:
    # print(i.tag,i.attrib,i.text)
    print(i.text)
    csv_writer.writerow([i.text])

f.close()

结果如下:
在这里插入图片描述

3.从csv文件中读取数据,调用百度情感API接口进行情感分析

代码如下:

import xml.etree.ElementTree as ET
import csv
from aip import AipNlp
import time
tree = ET.ElementTree(file='Test.xml')
root = tree.getroot()
f = open('XML弹幕情感分析.csv','w',encoding='utf-8',newline='')
APP_ID = '这里填入自己注册的百度API口令'
API_KEY = '这里填入自己注册的百度API口令'
SECRET_KEY = '这里填入自己注册的百度API口令'
client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
csv_writer = csv.writer(f)
# csv_writer.writerow(["弹幕内容","秒数","弹幕模式","字号","字体颜色","时间戳","弹幕池","发送者ID","弹幕在弹幕数据库中rowID"])
neirong = root.findall('d')
for i in neirong:
    classify = client.sentimentClassify(i.text);
    time.sleep(0.3)
    if classify["items"][0]['sentiment'] == 0:
        sentiment = "消极"
    elif classify["items"][0]['sentiment'] == 1:
        sentiment = "中性"
    else:
        sentiment = "积极"
    print(classify["text"], sentiment)
    csv_writer.writerow([i.text,sentiment])

f.close()

运行结果:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高哥的代码没Bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值