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

Python对冰冰的第一条vlog千条评论并进行数据分析,绘制词云图,看看大家说了什么吧。

酱酱酱,那就开始吧

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


文章目录

  • Python对冰冰的第一条vlog并进行数据分析
  • 1. 数据收集
    • 1.1 获取接口
    • 1.2 查看数据
    • 1.3 解析URL
    • 1.4 解析数据
  • 2. 数据分析
    • 2.1 数据描述
    • 2. 2 删除空值
    • 2.3 删除重复值
  • 3. 可视化展示
    • 3.1 点赞TOP20
    • 3.2 等级分布
    • 3.3 性别分布
    • 3.4 绘制词云图
    • 3.5 Summary
  • 4. 后记

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

1. 数据收集

1.1 获取接口

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

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 pddata = 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 Fakerc1 = (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 Fakerc2 = (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 Fakerc4 = (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

4. 后记

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

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


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

Python爬取冰冰的第一条vlog并进行数据分析相关推荐

  1. 用python爬取冰冰B站千条评论,我发现了这些...

    Python爬取 冰冰 第一条B站视频的千条评论,绘制词云图,看看大家说了什么吧 B站当日弹幕获取冰冰B站视频弹幕爬取原理解析 数据分析 import pandas as pd data = pd.r ...

  2. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!

    [CSDN 编者按]<哪吒>看哭了无数人!编者看的那场,有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下 ...

  3. python爬取国家男女比例_用python爬取3万多条评论,看韩国人如何评价韩国电影《寄生虫》?...

    用python爬取3万多条评论,看韩国人如何评价韩国电影<寄生虫>? 朱小五 凹凸数据 大家好,我是朱小五 今天给大家带来一个关于电影的数据分析文章. 别走啊,这次不是豆瓣,也不是猫眼 真 ...

  4. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  5. Python爬取B站5000条视频,揭秘为何千万人为它流泪

    作者 | Yura编辑 | 胡巍巍来源 | CSDN(ID:CSDNnews) 导语:我们特邀作者Yura爬取B站5000条视频,为你揭秘电影<哪吒>的更多"优秀梗", ...

  6. Python爬取近10万条程序员招聘数据,告诉你哪类人才和技能最受热捧!

    来源:凹凸数据 本文约5800字,建议阅读15分钟 本文带你了解当下企业究竟需要招聘什么样的人才?需要什么样的技能? 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于& ...

  7. Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪

    导读:<哪吒>看哭了无数人!有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下来. 人们喜欢<哪吒& ...

  8. python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸

    生活中我们经常会用python进行数据爬取,但是爬取简单分析难,很多人喜欢用echarts图表接口或者是python的第三方库进行数据可视化,甚至是用matlab,基本上都需要用代码实现,在数据展示上 ...

  9. 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?

    灵感来源与学习:利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论? 本文原创作者:壹加柒 本文来源链接:https://blog.csdn.net/yu1300000363/a ...

最新文章

  1. IDEA配置GitHub和Gitee
  2. 说实话,去一家小公司从 0 到 1 搭建后端架构,真难~
  3. swift 学习笔记之在柯里化(Currying)
  4. Mac下配置cocos2d-x开发环境(android和ios)
  5. Tableau系列之圆环图制作
  6. Jenkins安装目录说明
  7. mysql 字符串转时间yymmdd_mysql 日期和时间格式转换实现语句 | 很文博客
  8. 将游戏成绩传到排名页面html,用野狗开发实时游戏排行榜
  9. 转 python测试框架最全资源汇总
  10. html与js二级菜单横排,JavaScript实现横向滑出的多级菜单效果
  11. Flask 应用上下文
  12. 转: 深入理解Linux修改hostname
  13. Kent Beck 的《测试驱动开发》(TDD) Money示例Ruby版
  14. c4d需要学哪几种语言,自学C4D要多久才能掌握.看下以下的总结
  15. 软件测试的岗位划分和主要工作内容是怎样的?
  16. 主引导扇区程序代码优化-2
  17. 云计算基础架构 (二)redis群集
  18. C++无论字符串长度为多少sizeof()始终是28字节
  19. mysql数据库j电子课件,MYSQL数据库技术分享PPT演示课件
  20. Apple’s ‘Big-A ’ Data Center

热门文章

  1. 用小米手机的都是屌丝???
  2. vins-fusion gps融合相关总结
  3. MATLAB实现控制系统的时域分析,及稳定性判断,特征根法,劳斯判别法
  4. 误格式化硬盘数据恢复教程
  5. 自己做了一款新浪博客自动访客工具
  6. Teradata天睿公司将于5月举办国内最大规模大数据峰会
  7. 全球与中国保偏隔离器市场现状及未来发展趋势
  8. 七、行锁功过:怎么减少行锁对性能的影响?
  9. Smooth Freehand Drawing on iOS
  10. SQLAlchemy的基础使用