一文搞定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站弹幕生成云图相关推荐

  1. 最强绘图AI:一文搞定Midjourney(附送咒语)

    最强绘图AI:一文搞定Midjourney(附送咒语) Midjourney官网:https://www.midjourney.com 简介 Midjourney是目前效果最棒的AI绘图工具.访问Mi ...

  2. 【Python基础】一文搞定pandas的数据合并

    作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...

  3. 【语义分割】综述——一文搞定语义分割

    本文记录了博主阅读的关于语义分割(Semantic Segmentation)的综述类文章的笔记,更新于2019.02.19. [语义分割]综述--一文搞定语义分割 参考文献网址 An overvie ...

  4. 一文搞定pandas的数据合并

    作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...

  5. 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建

    [嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...

  6. 一文搞定MAVLINK软件协议

    转载:https://mp.weixin.qq.com/s/iGURlSS7V-5iBCEtgpzT7w 一文搞定MAVLINK软件协议 原创 L君 TBUS社区 2019-11-06 本文纯属资深程 ...

  7. 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写

    一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写 前言 一.准备环境分四步 1.1 给Win10装wsl2 硬件开启虚拟化 软件开启虚拟化及安装适用于Li ...

  8. php带参数单元测试_一文搞定单元测试核心概念

    基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...

  9. 一文搞定Swing和Qt按钮和文本框的创建

    一文搞定Swing和Qt按钮和文本框的创建 Qt的截图 java的 源码 package com.lujun;import java.awt.Container;import javax.swing. ...

最新文章

  1. python中degree什么意思_解读Python中degrees()方法的使用
  2. 计算机图形学三大应用领域,计算机图形学作业
  3. .NET 框架与多线程 (转载)
  4. java的死锁是什么意思_Java面试题:什么是死锁?如何手写一个死锁(Dead Lock)...
  5. Canvas设置样式无效导致圆变成椭圆的问题研究剖析
  6. 我们为什么要做数据分析?
  7. linux删除git账号密码忘记了,linux清除git账号密码
  8. 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
  9. 谈谈你对闭包的理解?
  10. WebClient 上传文件
  11. Android在WindowManagerService和ActivityManagerService中的Token
  12. python的简单实用小工具(未完待续......)
  13. 算法竞赛入门经典(第二版) 答案汇总(持续更新)
  14. 用css做一个3d相册
  15. es管理器免root_国产应用也强大 ES文件浏览器增加ROOT管理
  16. 50个BA分析工具第二个-Balanced ScoreCard
  17. 成都拓嘉启远:拼多多评论置顶该怎样去弄
  18. [案例7-2]商城进货交易记录
  19. day---06 文件的操作
  20. 什么是计算机立体化教程,全国计算机等级考试立体化应试教程

热门文章

  1. 三大集合:List、Map、Set
  2. pygame的基础知识详解(主窗口创建、图像绘制、时钟对象和事件响应等知识点),请惠存
  3. Android仿微信拍摄、录制视频,以及视频播放(基于JCameraView和GSYVideoPlayer)
  4. Android最完整的仿QQ表情聊天图文展示代码示例
  5. 液晶OLED接口MIPI之DSI协议学习
  6. 紫米10000mAh智能移动电源APP功能分析报告
  7. word excel转pdf,pdf合并,插入页码
  8. 一行Python代码去除照片背景
  9. 【GitHub或GitLab rejected】error: failed to push some refs to,Updates were rejected...
  10. 小红书用户画像分析_2020小红书爆品打造策略及案例分析!