前言

二、词云图可视化
尾语
嗨喽!大家好,这里是魔王~
最近已经播完第一季的电视剧《雪中悍刀行》,从播放量就可以看出观众对于这部剧的期待,总播放量达到50亿,可让人遗憾的是, 豆瓣评分只有5.7,甚至都没有破6。
很多人会把这个剧和《庆余年》做对比,因为主创班底相同
400余万字的同名小说曾被捧为网文界里的“名著”,不少粉丝早就对跨界改编有所期待,剧版的主创班底、出品方与2019年的爆款剧《庆余年》相同则放大了这份期待。然而《雪中悍刀行》播出后,书粉的怒火蔓延到了各类讨论场合。
时常在某站混迹的我,经常刷到《雪中》影视片段和其他影视片段的对比视频,比如:
今天就来采集这部剧的一部分视频弹幕,看看观众都说了啥,为什么播放量高,口碑却低
- requests模块的使用
- pandas保存表格数据
- pyecharts做词云图可视化
- python 3.8
- pycharm
- requests >>> pip install requests
- pyecharts >>> pip install pyecharts
找到弹幕所在地址 分析弹幕生成规律 timestamp: 初始值 15 后续实时加载 每隔30 就换一个数据
https://mfm.video.qq.com/danmuotype=json&target_id=7626435152%26vid%3Dp0041oidttf&session_key=0%2C174%2C1642248894×tamp=195
二. 代码实现- 发送网络请求
- 获取数据 弹幕内容
- 解析数据(筛选数据) 提取想要的一些内容 不想要的忽略掉
- 保存数据
- 词云图可视化
import requests # 发送网络请求
import pandas as pd # 保存数据
1.构建伪装
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
# 构建一个列表储存数据
data_list = []
for page in range(15, 1500, 30):
url = f'https://mfm.video.qq.com/danmu?otype=json&target_id=7626435152%26vid%3Dp0041oidttf&session_key=0%2C174%2C1642248894×tamp={page}'
2. 发送网络请求
response = requests.get(url=url, headers=headers)
3. 获取数据 弹幕内容 : 告诉我们响应成功
json_data = response.json()
# print(json_data)
4. 解析数据(筛选数据) 提取想要的一些内容 不想要的忽略掉
comments = json_data['comments']
for comment in comments:
data_dict = {}
data_dict['commentid'] = comment['commentid']
data_dict['content'] = comment['content']
data_dict['opername'] = comment['opername']
print(data_dict)
data_list.append(data_dict)
5. 保存数据 wps 默认以gbk的方式打开的
df = pd.DataFrame(data_list)
# 乱码, 指定编码 为 utf-8 或者是 gbk 或者 utf-8-sig
df.to_csv('data.csv', encoding='utf-8-sig', index=False)
6.运行结果

#%%
import jieba
from pyecharts.charts import WordCloud
import pandas as pd
from pyecharts import options as opts
#%%
wordlist = []
data = pd.read_csv('data.csv')['content']
data
#%%
data_list = data.values.tolist()
data_str = ' '.join(data_list)
words = jieba.lcut(data_str)
#%%
for word in words:
if len(word) > 1:
wordlist.append({'word':word, 'count':1})
df = pd.DataFrame(wordlist)
#%%
dfword = df.groupby('word')['count'].sum()
dfword2 = dfword.sort_values(ascending=False)
#%%
dfword3 = pd.DataFrame(dfword2, columns=['count'])
#%%
dfword3['word'] = dfword3.index
dfword3
#%%
word = dfword3['word'].tolist()
count = dfword3['count'].tolist()
#%%
a = [list(z) for z in zip(word, count)]
c = (
WordCloud()
.add('', a, word_size_range=[10, 50], shape='circle')
.set_global_opts(title_opts=opts.TitleOpts(title="词云图"))
)
c.render_notebook()
词云图
最近老是看到《雪中悍刀行》的视频推荐,于是来爬一爬它的弹幕,看看评价如何!
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!