疯犬少年的天空热评分析

最近B站有一部很火的青春剧《风犬少年的天空》,现在看到第9集(迫切等更),嘿好看,于是爬了它的评论,累计10000+,等更完了应该远不止一万,不管它,先看看小破站上观影人的ATTITUDE。
在这里插入图片描述
需要源代码可以评论,留下邮箱。
开干!!!!!!!!!!!!!!


导入相关库

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
import jieba
import re
from collections import Counter
from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image

plt.rcParams['font.sans-serif'] = ['SimHei']
os.chdir('D:\学习笔记\python\爬虫\风犬少年的天空热评')
data = pd.read_excel('shortviews.xlsx', sheet_name='views', encoding='GBK')

评分情况

remark = data.groupby(data['score'])[['score']].count()
remark['rate'] = round(remark['score'] / remark['score'].sum(), 3)
remark.columns = ['freq', 'rate']
remark
freqrate
score
29920.094
41870.018
61980.019
85910.056
1086190.814
plt.figure(figsize=(12, 6))
plt.style.use('ggplot')
plt.bar(x=remark.index, height=remark['freq'], bottom=0, color=['grey', 'grey', 'grey', 'grey', 'brown'])
plt.grid(False)
plt.title('评分情况', fontdict=dict(fontsize=30))
plt.xlabel('评分', fontsize=18)
plt.ylabel('计数', fontsize=18)
plt.tick_params(labelsize=16)
plt.show()

在这里插入图片描述

可以看出,仅10分占了81%,B友都很是喜欢啊!


总评词云图

txt = ''.join(data['content'].values.tolist())
txt = re.sub('[,‘“”;’()()?!。Bb【】的了 是看也就]', '', txt)
segments = jieba.lcut(txt)
count = Counter(segments)
res = sorted(count.items(), key=lambda x: x[1], reverse=True)
image = Image.open('bg.jpg')
img = np.array(image)
wc=WordCloud(
        background_color="#fff", #设置背景为白色,默认为黑色
        width=990,              #设置图片的宽度
        height=440,              #设置图片的高度
        margin=10,               #设置图片的边缘
        max_font_size=100,
        random_state=30,
        font_path='C:/Windows/Fonts/simkai.ttf', #中文处理,用系统自带的字体
        mask=img
    ).generate_from_frequencies(count)

# wc.to_image().show()

wc.to_file('wc.png')
plt.figure(figsize=(25,25))
plt.imshow(wc)
plt.axis('off')
plt.show()

在这里插入图片描述

In my personal perspective, B友们对这部剧表现出不同程度的喜爱,很大一部分原因可能是某一剧情引起了大家的回忆从而产生的共鸣,毕竟2020年了,国家这些年对教育的重视和包容,高中绝大多数都上过。

graphara = {}
for _key, _value in count.items():
    if len(_key) > 1:
        graphara.update({_key: _value})
wc=WordCloud(
        background_color="#fff", #设置背景为白色,默认为黑色
        width=990,              #设置图片的宽度
        height=440,              #设置图片的高度
        margin=10,               #设置图片的边缘
        max_font_size=100,
        random_state=30,
        font_path='C:/Windows/Fonts/simkai.ttf', #中文处理,用系统自带的字体

    ).generate_from_frequencies(graphara)

# wc.to_image().show()
# wc.to_file('wc1.png')
plt.figure(figsize=(12, 8))
plt.imshow(wc)
plt.axis('off')
plt.show()

在这里插入图片描述

青春、感动、真实、搞笑、现实、遗憾…,大家领悟吧!


差评

dislike = data[data['score'] < 5]
txt1 = ''.join(dislike['content'].values.tolist())
txt1 = re.sub('[,‘“”;’()()?!。Bb【】的了 是看也就]', '', txt1)
segments = jieba.lcut(txt1)
count = Counter(segments)
dis_graphara = {}
for _key, _value in count.items():
    if len(_key) > 1:
        dis_graphara.update({_key: _value})
wc=WordCloud(
        background_color="#fff", #设置背景为白色,默认为黑色
        width=990,              #设置图片的宽度
        height=440,              #设置图片的高度
        margin=10,               #设置图片的边缘
        max_font_size=100,
        random_state=30,
        font_path='C:/Windows/Fonts/simkai.ttf', #中文处理,用系统自带的字体

    ).generate_from_frequencies(dis_graphara)

# wc.to_image().show()
plt.figure(figsize=(18, 8))
plt.imshow(wc)
plt.axis('off')
plt.show()

在这里插入图片描述
从词云图中的天天、一直可以看出来,B站对这部剧的支持力度有多大,部分B友们已经受不住这样的轰炸了。但与剧情相关的词出现的很少,能看到的也就尴尬、不感兴趣,我猜可能是因为用的方言的原因,所以这些低分可能是B友们不喜欢B站轰炸式的推送吧,这就关系到B站的算法了,咋也不懂。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我将给出一种简单的实现方法。 首先,需要获取网易云音乐热歌榜的歌曲信息。可以使用类似之前爬取周杰伦专辑的方法,请求热歌榜 API,例如: ```python import requests import json url = 'https://music.163.com/api/v3/playlist/detail?id=3778678' headers = { 'Referer': 'https://music.163.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url, headers=headers) data = json.loads(response.text) tracks = data['playlist']['tracks'] for track in tracks: track_id = track['id'] track_name = track['name'] track_url = 'https://music.163.com/song?id={0}'.format(track_id) print(track_name, track_url) ``` 这里循环遍历了每首歌曲,然后获取了歌曲名称和链接。 接下来,需要获取每首歌曲的热门评论。可以使用类似的方法,请求歌曲评论的 API,例如: ```python import requests import json song_id = '1436664680' url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_{0}?limit=100'.format(song_id) headers = { 'Referer': 'https://music.163.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url, headers=headers) data = json.loads(response.text) comments = data['comments'] for comment in comments: comment_content = comment['content'] comment_time = comment['time'] comment_user = comment['user']['nickname'] print(comment_content, comment_time, comment_user) ``` 这里循环遍历了每个评论,然后获取了评论的内容、时间和用户信息,打印出了这些信息。 最后,可以使用 Python 的数据分析和可视化库来对爬取到的据进行分析和可视化展示。例如,可以使用 pandas 库来读取评论据,然后使用 jieba 分词和 wordcloud 库来生成词云图: ```python import pandas as pd import jieba from wordcloud import WordCloud df = pd.read_csv('comments.csv', header=None, names=['content', 'time', 'user']) content = ' '.join(df['content'].tolist()) words = jieba.cut(content) word_list = [word for word in words if len(word) >= 2] word_str = ' '.join(word_list) wordcloud = WordCloud(background_color='white', font_path='msyh.ttc').generate(word_str) wordcloud.to_file('wordcloud.png') ``` 这里使用了 jieba 分词库对评论内容进行分词处理,然后使用 wordcloud 库生成词云图。 以上就是爬取网易云音乐热歌榜200首歌的热评分析结果的一个简单示例。注意,爬取网易云音乐的据需要注意版权问题,不要非法获取据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值