Python将冰冰的第一条vlog并进行数据分析「建议收藏」

Python将冰冰的第一条vlog并进行数据分析「建议收藏」Python爬取冰冰第一条B站视频的千条评论,绘制词云图,看看大家说了什么吧文章目录数据分析数据预处理数据描述删除空值删除空值可视化点赞TOP20等级分布性别分布绘制词云图数据收集数据分析importpandasaspddata=pd.read_excel(r”bingbing.xlsx”)data.head()用户性别等级评论点赞.

大家好,又见面了,我是你们的朋友全栈君。

Python将冰冰的第一条vlog并进行数据分析

Python爬取 冰冰 第一条B站视频的千条评论,绘制词云图,看看大家说了什么吧,Python爬取B站视频评论并进行数据分析

酱酱酱,那就开始吧


Python将冰冰的第一条vlog并进行数据分析「建议收藏」

Python将冰冰的第一条vlog并进行数据分析「建议收藏」

版权声明:本文为博主原创文章,创作不易
本文链接:https://beishan.blog.csdn.net/article/details/112100932


【冰冰vlog.001】带大家看看每个冬天我必去的地方

推荐阅读:

B站当日弹幕获取
冰冰B站视频弹幕爬取原理解析

1. 数据收集

1.1 获取接口

哔哩哔哩其实留了很多接口,可以供我们来获取数据。 首先打开目标网站,并查看网页源码,发现评论内容不在源码中,可以确认评论是动态生成的。于是进入开发者模式,查找返回的内容。

Python将冰冰的第一条vlog并进行数据分析「建议收藏」

1.2 查看数据

点击preview即可发现评论数据在这里
在这里插入图片描述

1.3 解析URL

去掉第一个和最后一个参数可得评论URL,https://api.bilibili.com/x/v2/replyjsonp&type=1&oid=800760067&sort=2&pn=.

在这里插入图片描述


1.4 解析数据

大家可以将获取的json
接下来就是正式的爬取工作了,和爬取百度图片原理一样,自己试试吧。
为了方便查看json数据,可以将html中的json复制到json在线解析中查看
在这里插入图片描述

2. 数据分析

数据获取后,就可以开始初步的数据分析了

import pandas as pd

data = pd.read_excel(r"bingbing.xlsx")
data.head()
用户 性别 等级 评论 点赞
0 食贫道 6 [呆][呆][呆]你来了嘿! 158457
1 毕导THU 6 我是冰冰仅有的3个关注之一[tv_doge]我和冰冰贴贴 148439
2 老师好我叫何同学 6 [热词系列_知识增加] 89634
3 央视网快看 保密 6 冰冰来了!我们要失业了吗[doge][doge] 118370
4 厦门大学 保密 5 哇欢迎冰冰!!! 66196

原文链接

2.1 数据描述

data.describe()
等级 点赞
count 1180.000000 1180.000000
mean 4.481356 2200.617797
std 1.041379 10872.524850
min 2.000000 1.000000
25% 4.000000 4.000000
50% 5.000000 9.000000
75% 5.000000 203.750000
max 6.000000 158457.000000

2. 2 删除空值

data.dropna()
用户 性别 等级 评论 点赞
0 食贫道 6 [呆][呆][呆]你来了嘿! 158457
1 毕导THU 6 我是冰冰仅有的3个关注之一[tv_doge]我和冰冰贴贴 148439
2 老师好我叫何同学 6 [热词系列_知识增加] 89634
3 央视网快看 保密 6 冰冰来了!我们要失业了吗[doge][doge] 118370
4 厦门大学 保密 5 哇欢迎冰冰!!! 66196
1175 黑旗鱼 保密 5 11小时一百万,好快[惊讶] 5
1176 是你的益达哦 6 冰冰粉丝上涨速度:11小时107.3万,平均每小时上涨9.75万,每分钟上涨1625,每秒钟… 5
1177 快乐风男崔斯特 4 军训的时候去了趟厕所,出来忘记是哪个队伍了。看了up的视频才想起来,是三连[doge][滑稽] 5
1178 很认真的大熊 5 我觉得冰冰主持春晚应该问题不大吧。[OK] 5
1179 飞拖鞋呀吼 保密 5 《论一个2级号如何在2020年最后一天成为百大up主》 5

1180 rows × 5 columns

2.3 删除重复值

data.drop_duplicates()
用户 性别 等级 评论 点赞
0 食贫道 6 [呆][呆][呆]你来了嘿! 158457
1 毕导THU 6 我是冰冰仅有的3个关注之一[tv_doge]我和冰冰贴贴 148439
2 老师好我叫何同学 6 [热词系列_知识增加] 89634
3 央视网快看 保密 6 冰冰来了!我们要失业了吗[doge][doge] 118370
4 厦门大学 保密 5 哇欢迎冰冰!!! 66196
1175 黑旗鱼 保密 5 11小时一百万,好快[惊讶] 5
1176 是你的益达哦 6 冰冰粉丝上涨速度:11小时107.3万,平均每小时上涨9.75万,每分钟上涨1625,每秒钟… 5
1177 快乐风男崔斯特 4 军训的时候去了趟厕所,出来忘记是哪个队伍了。看了up的视频才想起来,是三连[doge][滑稽] 5
1178 很认真的大熊 5 我觉得冰冰主持春晚应该问题不大吧。[OK] 5
1179 飞拖鞋呀吼 保密 5 《论一个2级号如何在2020年最后一天成为百大up主》 5

1179 rows × 5 columns

3. 可视化展示

用的的工具是pyecharts,可以参考快速掌握数据可视化工具pyecharts

3.1 点赞TOP20

df1 = data.sort_values(by="点赞",ascending=False).head(20)
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

c1 = (
    Bar()
    .add_xaxis(df1["评论"].to_list())
    .add_yaxis("点赞数", df1["点赞"].to_list(), color=Faker.rand_color())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="评论热度Top20"),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
    )
    .render_notebook()
)
c1

在这里插入图片描述

3.2 等级分布

data.等级.value_counts().sort_index(ascending=False)
6    165
5    502
4    312
3    138
2     63
Name: 等级, dtype: int64
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

c2 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip([str(i) for i in range(2,7)], [63,138,312,502,165])],
        radius=["40%", "75%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="等级分布"),
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render_notebook()
)
c2

在这里插入图片描述

3.3 性别分布

data.性别.value_counts().sort_index(ascending=False)
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

c4 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(["男","女","保密"], ["404",'103','673'])],
        radius=["40%", "75%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="性别分布"),
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render_notebook()
    
)
c4

在这里插入图片描述

3.4 绘制词云图

from wordcloud import WordCloud
import jieba
from tkinter import _flatten
from matplotlib.pyplot import imread
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
with open('stoplist.txt', 'r', encoding='utf-8') as f:
    stopWords = f.read()
with open('停用词.txt','r',encoding='utf-8') as t:
    stopWord = t.read()
total = stopWord.split() + stopWords.split()
def my_word_cloud(data=None, stopWords=None, img=None):
    dataCut = data.apply(jieba.lcut)  # 分词
    dataAfter = dataCut.apply(lambda x: [i for i in x if i not in stopWords])  # 去除停用词
    wordFre = pd.Series(_flatten(list(dataAfter))).value_counts()  # 统计词频
    mask = plt.imread(img)
    plt.figure(figsize=(20,20))
    wc  = WordCloud(scale=10,font_path='C:/Windows/Fonts/STXINGKA.TTF',mask=mask,background_color="white",)
    wc.fit_words(wordFre)
    plt.imshow(wc)
    plt.axis('off')
my_word_cloud(data=data["评论"],stopWords=stopWords,img="1.jpeg")

3.5 Summary

在这里插入图片描述
推荐阅读:

  1. Tableau数据分析-Chapter01条形图、堆积图、直方图
  2. Tableau数据分析-Chapter02数据预处理、折线图、饼图
  3. Tableau数据分析-Chapter03基本表、树状图、气泡图、词云
  4. Tableau数据分析-Chapter04标靶图、甘特图、瀑布图
  5. Tableau数据分析-Chapter05数据集合并、符号地图
  6. Tableau数据分析-Chapter06填充地图、多维地图、混合地图
  7. Tableau数据分析-Chapter07多边形地图和背景地图
  8. Tableau数据分析-Chapter08数据分层、数据分组、数据集
  9. Tableau数据分析-Chapter09粒度、聚合与比率
  10. Tableau数据分析-Chapter10 人口金字塔、漏斗图、箱线图
  11. Tableau中国五城市六年PM2.5数据挖掘

4. 后记

根据弹幕获取的词云图,可以参考
冰冰B站视频弹幕爬取原理解析

Python将冰冰的第一条vlog并进行数据分析「建议收藏」

通过之前博客的学习,想必大家已经对Python网络爬虫有了了解,希望大家动手实践。笔者能力有限,有更多有趣的发现,欢迎私信或留言

推荐阅读:

  1. 冰冰B站视频弹幕爬取原理解析
  2. Python建立时间序列ARIMA模型实战案例
  3. 使用xpath爬取数据
  4. jupyter notebook使用
  5. BeautifulSoup爬取豆瓣电影Top250
  6. 一篇文章带你掌握requests模块
  7. Python网络爬虫基础–BeautifulSoup

到这里就结束了,如果对你有帮助,欢迎点赞关注,你的点赞对我很重要

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130602.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectX修复工具使用技巧之三——命令行与配置文件参数介绍

    DirectX修复工具使用技巧之三——命令行与配置文件参数介绍最后更新:2021-10-8DirectX修复工具自V1.0版起即支持通过settings.ini配置文件的方式设置程序配置信息,自V3.7版起支持命令行配置功能。由于命令行与配置文件均需要通过参数设定程序配置信息,本文档详细列出了命令行与配置文件的参数使用方式,供有需要的高级用户参考。命令行与配置文件中约有90%的命令是通用的,部分特殊命令只支持命令行的配置方式,本文件将分别介绍命令行参数与配置文件参数。命令行参数本程序支持命令行参数提示,用户可通过/?或者/h…

    2022年5月22日
    37
  • linux RWX权限的解读

    linux RWX权限的解读Linux的权限不是很细致,只有RWX三种r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。1、目录的只读访问不允许使

    2022年6月12日
    39
  • 史上最全正则表达式

    史上最全正则表达式

    2022年3月7日
    58
  • 利用google网管工具,快速诊断网站(一)

    利用google网管工具,快速诊断网站(一)前面讲了网站诊断要做的4个步骤,今天我们用google网管工具来对网站做快速诊断:google网管工具地址:http://www.google.com/webmasters/google网管工具控制台截图如下:快速诊断步骤:1、robots.txt文件检查点击“网站配置”—>“抓取工具的权限”,查看robots.txt文件可以在上图所示的网址处,输入多个网站地…

    2022年10月6日
    0
  • Java面试题

    Java面试题Java面试题

    2022年4月23日
    38
  • 【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」

    【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」前言其实这篇是临时加进来的,因为下一篇文章是libprotobuf+AFL++的内容,所以写的时候需要使用AFL++自定义突变的API,觉得还是需要单独写一篇API的介绍,一共十一个方法,也不是很多,下一篇文章就不再用大篇幅描述API了~编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノPS:文章末尾有联系方式,交个朋友吧~本文链接:模糊测试系列往期回顾:【CustomMutatorFuzz】Libprotobuf+LibFuzzerCustomM.

    2022年9月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号