Python数据可视化:啥是佩奇
她爹也是猪!她娘也是猪! 儿子还是猪!一窝猪!
或许这就是最好的回答。
原本只是一部电影方与移动合作的宣传短片。
却因里面打动人心的故事,大火了一把。
就如我之前的一篇文章里所提的。
不是年味越来越少,而是我们都长大了。
影片透露出那一股暖人心的亲情,如今也是越来越不容乐观。
物以稀为贵,或许这就便是能引起大家共鸣的原因吧。
其实大家心里都想,只不过由于种种原因,没能实现罢了。
本次对B站的弹幕数据进行获取。
来看看大家的弹幕信息,能不能让我们得到回答。
亦或发现一些有趣的信息。
/ 01 / 网页分析
B站的弹幕数据有现成的接口,只需找到对应视频的cid值即可。
从上图可以知道,弹幕一共2719条,视频的cid值为72036817。
接下来访问接口,获取数据。
网址:http://comment.bilibili.com/72036817.xml
接口获取的弹幕数据最多只有1000条。
但是总数却是是2719条,那么再找找看。
登陆B站后,点击查看历史弹幕按钮。
发现了每日视频的弹幕接口(只需将请求头加上cookies,即可访问)。
发现还是限制1000条,这里也是不解。
难不成每个视频播放时就只会放出来1000条弹幕?
不过相比第一个接口,应该能多出不少弹幕。
/ 02 / 数据获取
鉴于只是练手而已,就偷个懒。
直接从不需要cookies的接口获取1000条弹幕。
获取数据代码如下。
from bs4 import BeautifulSoup
import pandas as pd
import requests
url = 'http://comment.bilibili.com/72036817.xml'
html = requests.get(url).content
html_data = str(html, 'utf-8')
soup = BeautifulSoup(html_data, 'lxml')
results = soup.find_all('d')
comments = [comment.text for comment in results]
comments_dict = {'comments': comments}
df = pd.DataFrame(comments_dict)
df.to_csv('bilibili.csv', encoding='utf-8')
最后成功获取1000条弹幕数据。
第958条,和我外公外婆一样,来到家之后一包一包的都是他们从家里带来的菜和水果。
不知道,你有没有相同的感受呢?
相信大多数人都会说,有!!!
一种莫名的感动在心中。
/ 03 / 数据可视化
利用jieba分词,对弹幕数据生成词云。
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba
df = pd.read_csv('bilibili.csv', header=None)
text = ''
for line in df[1]:
text += ' '.join(jieba.cut(line, cut_all=False))
backgroud_Image = plt.imread('peiqi.jpg')
wc = WordCloud(
background_color='white',
mask=backgroud_Image,
font_path='C:WindowsFontssimhei.ttf',
max_words=2000,
max_font_size=80,
random_state=30,
)
wc.generate_from_text(text)
# 看看词频高的有哪些,把无用信息去除
process_word = WordCloud.process_text(wc, text)
sort = sorted(process_word.items(), key=lambda e:e[1], reverse=True)
print(sort[:50])
img_colors = ImageColorGenerator(backgroud_Image)
wc.recolor(color_func=img_colors)
plt.imshow(wc)
plt.axis('off')
wc.to_file("佩奇.jpg")
print('生成词云成功!')
原图如下,来自一位PPT大神的鼠绘佩奇。
如有需要下图的,公众号回复「佩奇」即可。
最后生成词云图。
啥是佩奇,我肯定是知道的...
估计逛B站的大佬们也都知道,所以猪这个词,出现的并不多。
看看弹幕数据还能发现一些其他什么东西。
这里发现河北、保定、张家口、怀来县这几个地名冒出。
说明短片可能是在河北省拍的。
还有爷爷是短片的主角,短片中的手套和手机也成功吸引了大家的关注。
朋克和硬核又是什么鬼,不解...
/ 04 / 总结
下面这段内容,摘自知乎。
说到底这个宣传片之所以能火起来,靠的还是咱中国人的情。
是农村生活,过年生活的真实写照。
反映了现代社会农村的真实情况,包括4G网以及智能手机还未普及,农村空巢老人的生活状态。
或许,这就是大家有共鸣的点。
- Linux快速入门01-基础概念
- SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制)
- 对php多态的理解
- JavaScript值延迟脚本和异步脚本
- JavaScript之arguments.callee
- JavaScript之面向对象学九(原型式继承和寄生式继承)
- ExtJs学习笔记(18)_ExtJs嵌入FCK示例
- Html与CSS快速入门01-基础概念
- 利用Fck的javascript-API创建fck编辑器
- ASPNET_WEBAPI快速学习02
- ExtJs学习笔记(17)_table布局
- Markdown快速入门
- JavaScript之apply()和call()的区别
- JavaScript之面向对象学习八(继承)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 《JavaScript 模式》读书笔记(7)— 设计模式2
- 《JavaScript 模式》读书笔记(7)— 设计模式3
- 弄它!!!Ospf--动态路由--链路状态路由协议!全面解析OSPF协议!
- 弄它!!!理论加实验,小小ISIS分分钟拿下!!
- 「Mysql索引原理(二)」Mysql高性能索引实践,索引概念、BTree索引、B+Tree索引
- 「Mysql索引原理(一)」1.存储引擎简介
- 弄它!!!小小BGP!理论加实验分分钟拿下!带你体验大网的世界!
- 搞它!!!Linux常用命令合集
- 搞它!!!深入了解安装及管理程序,学会使用rpm工具 虚拟机实验下载安装Apache
- (转)java中equals和等号(==)的区别浅谈
- 搞它!!!linux账号和权限管理
- 搞它!!!详细介绍linux磁盘管理和文件系统
- 详谈JAVA中的file类与IO流
- Java中的StringTokenizer类
- 搞它!!!Linux系统安全及应用以弱口令检测