冰冰B站第一个视频的弹幕大家都说了啥?Python爬取冰冰弹幕并分析

前言

王冰冰2020年12月31日在B站发布了第一个视频,一天时间里关注破百万。

各位老色批们在冰冰第一个视频的弹幕里都说了啥?

用爬虫采集到了冰冰第一个视频的全部弹幕,下面我们来分析一下。

需要提前声明的是,截止写这篇文章时,冰冰视频显示有13.4w弹幕,但是B站通过接口暴露出的弹幕只有1000多条。(可以指定查询弹幕时间,但是基本每天暴露的数据都是相同的,如果全部采集再去重也还是1000条左右,故本文中仅仅采集了一天的弹幕进行分析)

分析

导入依赖

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

画图方法

将数据处理好以后,使用下面两个方法将数据展示出来。

# 画图
def draw_bar(df, num):
    print('numdddddd', num)
    # 显示中文
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False

    rects_fig = plt.bar(range(num), list(df.values), color='b', tick_label=list(df.keys()))
    add_labels(rects_fig)
    plt.show()


# 给每个柱添加标签(在柱状图上面显示数字)
def add_labels(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x() + rect.get_width()/2, height+0.01*height, height, ha='center',  va='bottom', fontsize=14, color='red')
        rect.set_edgecolor('white')

数据格式

将采集的数据写到了csv文件中,样式如下

def show():
    df = pd.read_csv('./csv/dm.csv')
    print(df.head())

 

1.统计每种弹幕数量

这里仅统计了发送数量前十的弹幕

def anal():
    df = pd.read_csv('./csv/dm.csv')
    df = df[['弹幕发送时间', '弹幕出现时间', '弹幕内容']]
    df = df['弹幕内容'].value_counts()
    draw_bar(df.head(10), 10)

这次一定居然名列榜首,求一键三连却总是得到下次一定回复的up主们哭晕在厕所。

排名第一的弹幕居然是这次一定,这是我没有想到了。果然大家对自己“老婆”的视频还是丝毫不吝啬一键三连的。

然后像“加大力度”、“老婆”、“我的心是冰冰的”、“冰冰”等弹幕更是将各位铹铯铍的内心暴露无遗。

这个统计还有优化的空间,可以对意思相近弹幕进行合并,比如[哈哈哈哈]和[哈哈哈]等可以进行合并展示。

2.统计不同时段弹幕数量

冰冰第一支vlog总时长342秒。每30s划分一个时段,对每个时段弹幕数量作如下统计

# 按照时间范围分组统计每个时间段内弹幕数量
def anal_date_range():
    df = pd.read_csv('./csv/dm.csv')[['弹幕出现时间']]
    group_num = int(df.max() // 30 + 1)
    bins = [(x) * 30 for x in range(group_num+1)]
    se1 = pd.cut(df['弹幕出现时间'], bins, right=False)
    res = pd.value_counts(se1).sort_index()
    draw_bar(res, group_num)

统计结果:

 

未完待续!!!

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值