EDG夺冠,用Python分析一波:粉丝都炸锅了

本文禁止转载

EDG夺冠,粉丝炸锅了!

北京时间11月6日,在英雄联盟S11总决赛中,中国LPL赛区战队EDG电子竞技俱乐部以3∶2战胜韩国LCK赛区战队DK,获得2021年英雄联盟全球总决赛冠军。

这个比赛也是备受全网瞩目:

  • 微博热搜第一名,显示有8194万观看;
  • bilibili平台,吸引3.5亿人气,满屏弹幕;
  • 腾讯视频600万人看过;
  • 斗鱼和虎牙平台的热度也是居高不下;
  • 比赛结束后,央视新闻也发微博祝贺EDG战队夺冠;

在这里插入图片描述
既然比赛热度这么高,那大家都说了点啥?

我们用Python分析了31000条弹幕数据,满屏都是粉丝的祝福与感受。
在这里插入图片描述
我们不仅可以通过直播和新闻来感受比赛的整个过程,也可以通过Python来分析热点来感受粉丝的热情。

文中用到的源代码、字体文件、停用词文件、背景图,均可添加好友领取!

手把手教你获取弹幕数据

1. 简单说明

没看过直播的朋友不要紧,有回放呀!整个视频已经为大家整理好了,从开幕式,到五场比赛,再到夺冠时刻,一共7个视频。

在这里插入图片描述
每个视频中,都有粉丝发布的弹幕。今天要做的,就是获取每个视频里面的弹幕数据,看看粉丝在躁动的心情下,说了点啥?

不得不说,B站网页的变化速度真快,我记得去年还是很容易找到的。但是今天却一直没有找到。

但是没有关系,我们直接将以前的弹幕数据网址接口拿过来使用就行。

API: https://api.bilibili.com/x/v1/dm/list.so?oid=XXX

这个oid其实就是一串数字,每个视频都有一个独特的oid。

2. oid数据找寻

本小节就带着大家一步步找寻这个oid。要找到oid,首先要找到一个叫做cid的东西。

点击F12,先打开开发者工具,按照图中提示,完成1-5处的操作。
在这里插入图片描述

  • 第3处:这个页面有很多个请求,但是你需要找到这个以pagelist开头的请求。
  • 第4处:观察对应的Header下方,有一个Request URL,我们要的cid就在这个网址中。
  • 第5处:观察对应的Preview下方,就是请求Request URL,响应给我们的结果,图中圈起来的就是我们要的cid数据。

2. cid数据获取

上述我们已经找到了Request URL,下面我们只需要发起请求,获取里面的cid数据即可。

import requests
import jsonurl = 'https://api.bilibili.com/x/player/pagelist?bvid=BV1EP4y1j7kV&jsonp=jsonp'
res = requests.get(url).text
json_dict = json.loads(res)
#pprint(json_dict)for i in json_dict["data"]:oid = i["cid"]print(oid)

结果如下:
在这里插入图片描述
其实,这里cid对应的数字串,就是oid后面的数字串。

3. 拼接url

我们不仅有了弹幕api接口,也有了cid数据,接下来将它们进行拼接,就可以得到最终的url。

url = 'https://api.bilibili.com/x/player/pagelist?bvid=BV1EP4y1j7kV&jsonp=jsonp'
res = requests.get(url).text
json_dict = json.loads(res)
#pprint(json_dict)for i in json_dict["data"]:oid = i["cid"]api = "https://api.bilibili.com/x/v1/dm/list.so?oid="url = api + str(oid)print(url)

结果如下:
在这里插入图片描述
一共有7个网址,分别对应7个视频里面的弹幕数据。

随便点开一个查看:
在这里插入图片描述

4. 正则提取弹幕数据并保存

有了完整的url后,我们要做的就是提取里面的数据,这里还是直接采用正则表达式。我们以其中一个视频为例,为大家讲解。

final_url = "https://api.bilibili.com/x/v1/dm/list.so?oid=437729555"
final_res = requests.get(final_url)
final_res.encoding = chardet.detect(final_res.content)['encoding']
final_res = final_res.text
pattern = re.compile('<d.*?>(.*?)</d>')
data = pattern.findall(final_res)with open("弹幕.txt", mode="w", encoding="utf-8") as f:for i in data:f.write(i)f.write("\n")

结果如下:
在这里插入图片描述
这只是其中一页的数据,共有7200条数据。

完整代码

上述我已经分步为大家讲解了每一步过程,这里我直接将代码封装成函数。

import os
import requests
import json
import re
import chardet# 获取cid
def get_cid():url = 'https://api.bilibili.com/x/player/pagelist?bvid=BV1EP4y1j7kV&jsonp=jsonp'res = requests.get(url).textjson_dict = json.loads(res)cid_list = []for i in json_dict["data"]:cid_list.append(i["cid"])return cid_list# 拼接url
def concat_url(cid):api = "https://api.bilibili.com/x/v1/dm/list.so?oid="url = api + str(cid)return url# 正则提取数据
def get_data(url):final_res = requests.get(url)final_res.encoding = chardet.detect(final_res.content)['encoding']final_res = final_res.textpattern = re.compile('<d.*?>(.*?)</d>')data = pattern.findall(final_res)return data# 保存数据
def save_to_file(data):with open("弹幕数据.txt", mode="a", encoding="utf-8") as f:for i in data:f.write(i)f.write("\n")cid_list = get_cid()
for cid in cid_list:url = concat_url(cid)data = get_data(url)save_to_file(data)

结果如下:
在这里插入图片描述
确实很棒,一共3.1w数据!

保姆级词云图制作教程

对于获取到了 数据,我们 利用EDG背景图,制作一个好看的词云图。

# 1 导入相关库
import pandas as pd
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from imageio import imreadimport warnings
warnings.filterwarnings("ignore")# 注意:动态添加词语集
for i in ["EDG","永远的神","yyds","牛逼","发来贺电"]jieba.add_word(i)# 2 读取文本文件,并使用lcut()方法进行分词
with open("弹幕数据.txt",encoding="utf-8") as f:txt = f.read()
txt = txt.split()
txt = [i.upper() for i in txt]
data_cut = [jieba.lcut(x) for x in txt]# 3 读取停用词
with open("stoplist.txt",encoding="utf-8") as f:stop = f.read()
stop = stop.split()
stop = [" "] + stop# 4 去掉停用词之后的最终词
s_data_cut = pd.Series(data_cut)
all_words_after = s_data_cut.apply(lambda x:[i for i in x if i not in stop])# 5 词频统计
all_words = []
for i in all_words_after:all_words.extend(i)
word_count = pd.Series(all_words).value_counts()# 6 词云图的绘制
# 1)读取背景图片
back_picture = imread("EDG.jpg")# 2)设置词云参数
wc = WordCloud(font_path="simhei.ttf",background_color="white",max_words=1000,mask=back_picture,max_font_size=200,random_state=42)
wc2 = wc.fit_words(word_count)# 3)绘制词云图
plt.figure(figsize=(16,8))
plt.imshow(wc2)
plt.axis("off")
plt.show()
wc.to_file("ciyun.png")

结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/43200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恭喜EDG 夺得冠军

268. 丢失的数字 难度简单512 给定一个包含 [0, n] 中 n 个数的数组 nums &#xff0c;找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1&#xff1a; 输入&#xff1a;nums [3,0,1] 输出&#xff1a;2 解释&#xff1a;n 3&#xff0c;因为有 3 个数字&#xff…

EDG夺冠火爆全网,官网域名用的如何?

前几天&#xff0c;无论是在社交软件还是短视频软件&#xff0c;几乎被EDG承包刷屏&#xff0c;来自世界各地数以亿计的青年观众&#xff0c;自发在朋友圈、微博、INS、YouTube等平台为其呐喊、加油助威。那么&#xff0c;EDG是谁?这么厉害&#xff0c;启用的是什么类型的域名…

强化学习1--基础知识(个人笔记)

目录 Deep Reinforcement Learning&#xff0c; 深度强化学习的理论知识 什么是强化学习 为什么使用强化学习 强化学习的基本要素 On-policy和Off-policy Online和Offline学习的本质 基本概念 强化学习的分类 适用DRL的五大特征 强化学习的资料 深度强化学习 要素设…

加拿大ee移民 最新消息 越来越难申请了!!

当地时间2019年5月29日&#xff0c;加拿大联邦移民部快速通道&#xff08;Express Entry&#xff09;移民审理系统进行了最新一次的甄选。 本次抽选共发出了3350份邀请&#xff0c;抽选分数为470分&#xff0c;比上次抽选整整高出20分。 470的高分着实让大家望分兴叹&#xff…

智利移民:国家最近移民变化

智利是世界上铜矿资源最丰富的国家&#xff0c;它还是世界上唯一生产硝石的国家。智利在新闻自由、人类发展指数、民主发展等方面也获得了很高的排名。智利教育高度发达&#xff0c;其教育在发达国家普遍承认。由于地处美洲大陆的最南端&#xff0c;与南极洲隔海相望&#xff0…

华人工程师在美国-从微软高管离职说起

前段时间&#xff0c;微软高管沈向洋宣布将要离职工作20多年的微软的消息又掀起了波澜。有文章说得似乎有些悲情&#xff0c;说这是最后一个在微软的华人高管离开了微软。印象中的确经常看到新闻说起微软华裔高管离职或者微软前高管相关的事情。翻阅了一下记录&#xff0c;笔者…

伟大的太空星球移民计划

相对于过于天马行空的宇宙舰队&#xff0c;逃离地球、移民外星一直是一 个更稳妥、也似乎更容易实现的计划&#xff0c;至少&#xff0c;在外星生活时不必担心星球因为意外而突然坠毁。 虽然以人类现在的科技水准&#xff0c;星际航行几乎还是不可能完成的任 务&#xff0c;根据…

大话西游各服务器位置,大话西游各服务器移民历史

满意答案 lc4120 2013.12.19 采纳率:52% 等级:11 已帮助:6879人 第一次移民:2002年7月15日 14:00-16:00 移民范围: 宝象国-->车迟国 第二次移民:2002年7月24日 14:00-16:00 移民范围: 天竺国-->火焰山 第三次移民:2002年8月7日 14:00-16:00 移民范围: 宝象国-->…

几个很重要的公众号,4万块移民德国

下面挨个介绍几个我认为很重要的公众号。 这个公众号是大部分互联网人都会关注的&#xff0c;甚至马化腾&#xff0c;张小龙都会给他打赏&#xff0c;主动加他微信&#xff0c;公众号平均打赏人数有2000人。我关注了好几年&#xff0c;受他感召&#xff0c;我放弃德国无忧无虑…

大乌龙:系统出错,被接受的加拿大移民申请超出限额7307份

整理 | 祝涛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 加拿大移民系统的一个漏洞导致政府额外接受了7307份移民申请&#xff0c;这一数字已经超过了限额。其中包括了申请永久居留权的国际毕业生的文件。 系统出错导致接受的移民申请超过限额 不管是以哪一…

澳洲移民监 盘点一下各国的移民监要求

移民监&#xff0c;一种指为了保留移民身份而不得不在另外一国居住的时间。另一种指为了成为公民&#xff0c;不得不居住的时间。移民监常被戏称为“移民囚”&#xff0c;其实移民监并不是监狱&#xff0c;坐移民监也不是把你关在监狱里&#xff0c;只是因为在一定范围内限制了…

银河移民PHP面试,移民香港,我真的“后悔死了”

前两年通过香港优才来的香港&#xff0c;当初选择了去香港&#xff0c;第一考虑到孩子的学习&#xff0c;一直认同香港的教学理念&#xff0c;二是北京的空气实在太差了。当初优才打分130分&#xff0c;属于中等吧。 如何选择小学&#xff1f; 说到孩子的学习&#xff0c;当时我…

新西兰留学再移民,哪些专业好就业?

大家都知道,对于想移民的申请人条件又不够的,留学只不过是一个通往移民成功的工具,但是很多人瞧不上留学,觉得麻烦,时间长,花钱多等等…实际上花钱多你和投资比比呢?嫌麻烦那和创业比呢?如果目的是移民,那留学可能真的是最适合的一条路。 每年的新西兰移民中,60%是技…

加拿大计算机硕士留学移民,加拿大硕士留学移民深度解析,纯干货

对于大多数国内申请人来说&#xff0c;加拿大硕士留学移民是移民加拿大的优选方式之一。镀金的同时&#xff0c;收获加拿大枫叶卡&#xff0c;一举多得的。 那加拿大硕士留学移民都有什么优势&#xff1f;加拿大硕士学制什么样呢&#xff1f;需要什么条件才能申请呢&#xff1f…

人人都能GPT!微软开源DeepSpeed Chat帮用户训练模型

简介 4月12日&#xff0c;微软宣布开源了 DeepSpeed Chat&#xff0c;帮助用户加速训练类似于 ChatGPT 的模型。 DeepSpeed Chat 能够简化 ChatGPT 类型模型的训练过程、强化推理体验。其中的 DeepSpeed-RLHF 系统能够在推理和训练两种模式之间进行切换&#xff0c;使复杂的 …

外汇天眼:新手必备!外汇模拟交易——交易生涯的第一步

你应该用模拟账户练习交易吗&#xff1f;这对很多交易者来说是一个再常见不过的问题&#xff0c;尤其是对新手交易者。答案毋庸置疑&#xff1a;应该。在真实账户交易之前&#xff0c;先用模拟账户做练习式交易&#xff0c;这非常有必要的&#xff0c;模拟交易可以帮助你熟悉市…

CTP程序化交易入门系列之四:行情订阅常见问题解答

前言 这一章总结了大家订阅行情最常问的一些问题的相关解答&#xff0c;希望能有帮助。如有不对的地方&#xff0c;欢迎指正。后期会在这里更新迭代&#xff0c;欢迎到这底下提问&#xff01; 更新时间&#xff1a;20201112 1 获取行情的地址在哪里可以查到&#xff1f; simno…

优质的客户期货开户交易所返还高

优质的客户交易所返还高 期货公司排名 期货公司的资质:除了平台安全性外。期货业协会、证监会有关部门、中国期货市场监控中心等组成的评审委员会会以期货公司风险管理能力为基础&#xff0c;结合公司服务实体经济能力、市场竞争力、持续合规状况&#xff0c;每年对期货公司进…

您应该知道的重要外汇交易术语!

如果您曾经以新人的身份参加过商务会议或研讨会&#xff0c;您就会知道聆听看似陌生的讨论是什么感觉。过道两边的人使用术语、首字母缩略词和缩写来指代您对他们知之甚少或一无所知的人和事件。 这是一个令人尴尬的位置&#xff0c;但你不能让它变得更好。不要让您缺乏对外汇交…

对GPT的一些思考观点

站在个人角度&#xff0c;对于GPT是否意味着革命机会我觉得需要做一些更具体的尝试才行。上次看老板在群里分享了一张图片&#xff0c;大意是说GPT意味着如下几个机会&#xff1a;生产工具&#xff08;写代码&#xff0c;生成内容、生成报告&#xff09;、对话引擎&#xff08;…