栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

用Python分析《致我们暖暖的小时光》的1万条弹幕,我发现了这些……

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Python分析《致我们暖暖的小时光》的1万条弹幕,我发现了这些……

《致我们暖暖的小时光》是一部都市青春爱情网剧。 该剧根据赵乾乾的同名小说改编,讲述了氧气少女司徒末与物理天才顾未易意外合租后发生的一段暖甜逗趣的恋爱故事。

我们今天就用Python分析了《致我们暖暖的小时光》的视频弹幕以及豆瓣短评,看看大家对于什么。

豆瓣评分

《致我们暖暖的小时光》,分数为7.7分, 共有14万余人评分。

我们用Python分析了豆瓣的热评数据,从评分分布可以看到:

分数占比方面,25.9%的人给出5星,42.1%的人给出4星。给出1星好评的仅有1.2%。

通过分析了短评中197条数据,筛出一些无用词汇后,统计出各情感表达词段出现的评率并绘制对应的柱状图。

对于用户短评中的情感分析得到:

接近1.0代表好评,可以看出好评率很高。


情感区间为[-0.5, 0.5],位于0以上的是积极评论,反之消极评论。可见,积极评论较多,用户对剧情的反馈较好。

评价关键词可视化


从评价词云图中可见,话题主要集中在男主(顾未易)、女主,并且对于剧情的评价多为正向积极的评价。此外,“青春”、“演技”、"自然"等也是短评中常出现的。

可视化形状选自:https://fontawesome.dashgame.com/

腾讯视频字幕

分析12721条弹幕数据,看看大家的关注点在哪里

我们使用Python获取并分析了《致我们暖暖的小时光》的腾讯弹幕数据,爬取及分析过程如下。

  • 弹幕数据获取
  • 数据读入和数据预处理
  • 数据可视化

1.1 弹幕数据获取

首先导入需要的库

import requests  # 导入request库
import time  # 导入time库
import json  # 导入json库

from wordcloud import WordCloud  # 从wordcloud库中导入WordCloud方法
import jieba  # 导入jieba库
from PIL import Image  # 从PIL库中导入Image方法
import numpy as np  # 导入numpy库,并将名称简写为np(写成其他简写也可,例如abc,只要方便使用即可)

接着发送请求获取html代码,并在腾讯视频登录后找到user-agent、referer、cookie,

具体步骤如下:


class ChatSpider:

    def __init__(self):
        self.session = requests.Session()
        # 自定义的请求头数据
        self.headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36 ',
            'referer': 'https://v.qq.com/channel/tv?channel=tv&feature=10&listpage=1&pay=867',
            'cookie': '账号登录后的cookie'
        }
        # 设置 session 的全局 headers
        self.session.headers.update(self.headers)

接着进行数据的解析和保存:

    def get_data(self):
        self.data = []  # 创建空列表,用于保存数据
        for i in range(100, 1500, 30):  # 使用for循环得到每一个完整的请求地址,i 传入 timestamp 参数
            params = {
                "otype": "json",
                "target_id": "3833477302&vid=z00300gtbcw",
                "session_key": "1759797,52440,1638861908",
                "timestamp": str(i),
                "_": "1638861907114"
            }
            req = self.session.get('https://mfm.video.qq.com/danmu', params=params)
            req_josn = json.loads(req.text)  # 识别出字符串中的 json 格式
            for i in req_josn['comments']:  # 分析 josn格式 的数据,找到弹幕在字典中>comments 中> content
                print(i['content']) # 打印出弹幕内容
                self.data.append(i['content'])
            time.sleep(10)  # 延时一段时间,防止爬取过快被封禁

    def process_data(self):
        pass  # 空语句

    def save_data(self):
        with open('./danmu.txt', 'a+', encoding='utf-8') as file:
            for i in self.data:
                file.write(i + 'n')  # 在保存数据的同时加上了换行符,方便查看弹幕

分析:

1.1.1首先点击某一个弹幕,打开开发者工具,找到Request URL,寻找其中的规律

 https://mfm.video.qq.com/danmu?otype=json&callback=jQuery191006807634861214984_1638861907086&target_id=3833477302%26vid%3Dz00300gtbcw&session_key=1759797%2C52440%2C1638861908×tamp=75&_=1638861907114 

 https://mfm.video.qq.com/danmu?otype=json&callback=jQuery191006807634861214984_1638861907090&target_id=3833477302%26vid%3Dz00300gtbcw&session_key=1759797%2C52440%2C1638861908×tamp=45&_=1638861907108 

分析得出target_id、session_key相同(PS:其中%2C代表’,’),因此在请求时携带的参数params 包括target_id、session_key、timestamp、_

1.2 数据预处理

# 通过正则表达式实现
    pattern = re.compile(r'([u4e00-u9fa5]+|[a-zA-Z]+)')
​    deal_comments = re.findall(pattern, comments)
​    newComments = ''
​    print(newComments)
​    for item in deal_comments:
​        newComments += item
​    print(newComments)
​    f.write(newComments)


1.3 数据可视化

弹幕词云图


具体数据可见于:
链接:https://pan.baidu.com/s/1mKXzJ8LnlhIgcuc481egwQ
提取码:vd2k

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号