前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python采集《雪中悍刀行》视频弹幕,并且做词云图可视化分析

Python采集《雪中悍刀行》视频弹幕,并且做词云图可视化分析

作者头像
松鼠爱吃饼干
发布2022-01-24 09:14:42
4150
发布2022-01-24 09:14:42
举报
文章被收录于专栏:Python分享

前言

最近已经播完第一季的电视剧《雪中悍刀行》,从播放量就可以看出观众对于这部剧的期待,总播放量达到50亿,可让人遗憾的是,豆瓣评分只有5.7,甚至都没有破6。

很多人会把这个剧和《庆余年》做对比,因为主创班底相同

400余万字的同名小说曾被捧为网文界里的“名著”,不少粉丝早就对跨界改编有所期待,剧版的主创班底、出品方与2019年的爆款剧《庆余年》相同则放大了这份期待。然而《雪中悍刀行》播出后,书粉的怒火蔓延到了各类讨论场合。

今天就来采集这部剧的一部分视频弹幕,看看观众都说了啥,为什么播放量高,口碑却低

知识点介绍

  • requests模块的使用
  • pandas保存表格数据
  • pyecharts做词云图可视化

环境介绍

  • python 3.8
  • pycharm
  • requests >>> pip install requests
  • pyecharts >>> pip install pyecharts

代码实现

1. 导入模块

代码语言:javascript
复制
import re

import requests     # 发送网络请求
import pandas as pd # 保存数据

2. 发送网络请求

代码语言:javascript
复制
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&timestamp={page}'
    esponse = requests.get(url=url, headers=headers)

3. 获取数据 弹幕内容

代码语言:javascript
复制
json_data = response.json()

<Response [200]>: 告诉我们响应成功

4. 解析数据(筛选数据) 提取想要的一些内容 不想要的忽略掉

代码语言:javascript
复制
comments = json_data['comments']
print(comments)
for comment in comments:
    data_dict = {}
    data_dict['commentid'] = comment['commentid']
    content = comment['content']
    content = re.sub(r'[\x0e\xa0]', '', content)

    data_dict['content'] = content
    data_dict['opername'] = comment['opername']
    print(data_dict)
    data_list.append(data_dict)

5. 保存数据

代码语言:javascript
复制
df = pd.DataFrame(data_list)
# 乱码, 指定编码 为 utf-8 或者是 gbk 或者 utf-8-sig
df.to_csv('data.csv', encoding='utf-8-sig')

6. 词云图可视化

代码语言:javascript
复制
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

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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 知识点介绍
  • 环境介绍
  • 代码实现
    • 1. 导入模块
      • 2. 发送网络请求
        • 3. 获取数据 弹幕内容
          • 4. 解析数据(筛选数据) 提取想要的一些内容 不想要的忽略掉
            • 5. 保存数据
              • 6. 词云图可视化
              相关产品与服务
              腾讯云图数据可视化
              腾讯云图数据可视化(Tencent Cloud Visualization) 是一站式数据可视化展示平台,旨在帮助用户快速通过可视化图表展示大量数据,低门槛快速打造出专业大屏数据展示。精心预设多种行业模板,极致展示数据魅力。采用拖拽式自由布局,全图形化编辑,快速可视化制作。腾讯云图数据可视化支持多种数据来源配置,支持数据实时同步更新,同时基于 Web 页面渲染,可灵活投屏多种屏幕终端。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档