一文搞定B站弹幕生成云图
一文搞定B站弹幕生成云图
最近学了词云图, 感觉非常有趣,我们做一些图试试, 最近我们遭受了新冠疫情 , 关于这个点,去看看b站弹幕都在说什么?
B站的弹幕接口
直接从B站某视频源中找半天没找到弹幕的接口,在网上查,发现B站弹幕的api接口如下,
‘https://api.bilibili.com/x/v1/dm/list.so?oid=’ + cid
只要获得视频的cid就直接可以拿到弹幕了,那cid就更简单了,直接打开开发者工具,网络, ctrl + F 搜索 cid ,找到一串数字的就是了
以一个疫情下的武汉视频为例,当前视频的cid 为 146308826
弹幕的url为 'https://api.bilibili.com/x/v1/dm/list.so?oid=146308826 ’ ,查看 ,确实是的
下面是爬取弹幕,以及生成云图代码
import requests
import chardet
import re
import pandas as pd
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from imageio import imread
import warnings# 1.根据地址发起请求 ,获得弹幕数据
cid = 146308826
final_url = "https://api.bilibili.com/x/v1/dm/list.so?oid=" + str(cid)
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)# 2 持久化存储弹幕到txt文件
with open("弹幕.txt", mode="w", encoding="utf-8") as f:for i in data:f.write(i)f.write("\n")
warnings.filterwarnings("ignore")# 3 读取文本文件,并使用lcut()方法进行分词
with open("弹幕.txt",encoding="utf-8") as f:txt = f.read()
txt = txt.split()
data_cut = [jieba.lcut(x) for x in txt]
data_cut# 4 读取停用词
with open(r"C:\soft\Anaconda\Lib\site-packages\wordcloud\stopwords",encoding="utf-8") as f:stop = f.read()
stop = stop.split()
stop = [" ","道","说道","说"] + stop# 5 去掉停用词
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])# 6 词频统计
all_words = []
for i in all_words_after:all_words.extend(i)
word_count = pd.Series(all_words).value_counts()# 7 画词云图
# 读取背景图片
back_picture = imread(r"C:\Users\yuanwanli\Desktop\dasi.jpg")
# 设置词云参数
wc = WordCloud(font_path=r"C:\soft\Anaconda\Lib\site-packages\wordcloud\STXINGKA.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=(20,8))
plt.imshow(wc2)
plt.axis("off")
plt.show()
wc.to_file("ciyun.png")
可以看到最多的就是给武汉加油打气, 还有全国各地的美食对热干面的祝福
一文搞定B站弹幕生成云图相关推荐
- 最强绘图AI:一文搞定Midjourney(附送咒语)
最强绘图AI:一文搞定Midjourney(附送咒语) Midjourney官网:https://www.midjourney.com 简介 Midjourney是目前效果最棒的AI绘图工具.访问Mi ...
- 【Python基础】一文搞定pandas的数据合并
作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...
- 【语义分割】综述——一文搞定语义分割
本文记录了博主阅读的关于语义分割(Semantic Segmentation)的综述类文章的笔记,更新于2019.02.19. [语义分割]综述--一文搞定语义分割 参考文献网址 An overvie ...
- 一文搞定pandas的数据合并
作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...
- 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建
[嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...
- 一文搞定MAVLINK软件协议
转载:https://mp.weixin.qq.com/s/iGURlSS7V-5iBCEtgpzT7w 一文搞定MAVLINK软件协议 原创 L君 TBUS社区 2019-11-06 本文纯属资深程 ...
- 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写
一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写 前言 一.准备环境分四步 1.1 给Win10装wsl2 硬件开启虚拟化 软件开启虚拟化及安装适用于Li ...
- php带参数单元测试_一文搞定单元测试核心概念
基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...
- 一文搞定Swing和Qt按钮和文本框的创建
一文搞定Swing和Qt按钮和文本框的创建 Qt的截图 java的 源码 package com.lujun;import java.awt.Container;import javax.swing. ...
最新文章
- python中degree什么意思_解读Python中degrees()方法的使用
- 计算机图形学三大应用领域,计算机图形学作业
- .NET 框架与多线程 (转载)
- java的死锁是什么意思_Java面试题:什么是死锁?如何手写一个死锁(Dead Lock)...
- Canvas设置样式无效导致圆变成椭圆的问题研究剖析
- 我们为什么要做数据分析?
- linux删除git账号密码忘记了,linux清除git账号密码
- 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
- 谈谈你对闭包的理解?
- WebClient 上传文件
- Android在WindowManagerService和ActivityManagerService中的Token
- python的简单实用小工具(未完待续......)
- 算法竞赛入门经典(第二版) 答案汇总(持续更新)
- 用css做一个3d相册
- es管理器免root_国产应用也强大 ES文件浏览器增加ROOT管理
- 50个BA分析工具第二个-Balanced ScoreCard
- 成都拓嘉启远:拼多多评论置顶该怎样去弄
- [案例7-2]商城进货交易记录
- day---06 文件的操作
- 什么是计算机立体化教程,全国计算机等级考试立体化应试教程
热门文章
- 三大集合:List、Map、Set
- pygame的基础知识详解(主窗口创建、图像绘制、时钟对象和事件响应等知识点),请惠存
- Android仿微信拍摄、录制视频,以及视频播放(基于JCameraView和GSYVideoPlayer)
- Android最完整的仿QQ表情聊天图文展示代码示例
- 液晶OLED接口MIPI之DSI协议学习
- 紫米10000mAh智能移动电源APP功能分析报告
- word excel转pdf,pdf合并,插入页码
- 一行Python代码去除照片背景
- 【GitHub或GitLab rejected】error: failed to push some refs to,Updates were rejected...
- 小红书用户画像分析_2020小红书爆品打造策略及案例分析!