分析B站弹幕,川普同志暴露的那一天,没有一个鬼畜up是无辜的
时间:2022-07-25
本文章向大家介绍分析B站弹幕,川普同志暴露的那一天,没有一个鬼畜up是无辜的,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
B站作为一个弹幕视频网站,有着所谓的弹幕文化,那么接下来我们看看,一个视频中出现最多的弹幕是什么?
知识点:
- 爬虫基本流程
- 正则
- requests
- jieba
- csv
- wordcloud
开发环境:
- Python 3.6
- Pycharm
爬取目标
https://www.bilibili.com/video/BV1Mk4y1z7ey/?spm_id_from=333.788.videocard.6
代码
1.导入工具
from bs4 import BeautifulSoup
import requests
import re
import csv
2.导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud
3.导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread(r"拳头.png")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36",
"cookie": "_uuid=E151BB47-D49E-6692-19A1-2514519BCB6896608infoc; buvid3=6B813D30-FC11-4BAC-B077-A65D7118C308138392infoc; sid=bmsyfv4j; DedeUserID=24695355; DedeUserID__ckMd5=1027309007358c2f; SESSDATA=2ae6a4d8%2C1612179663%2Cb09ca*81; bili_jct=77765442d3466b18abf9c6c02098f2f1; CURRENT_FNVAL=16; rpdid=|(umuum~lllm0J'ulmYYJl|Rm; bp_video_offset_24695355=420789477979262399; LIVE_BUVID=AUTO9115968115538586; PVID=1; bsource=search_baidu; bfe_id=6f285c892d9d3c1f8f020adad8bed553"
}
# response = requests.get("https://api.bilibili.com/x/v1/dm/list.so?oid=186803402", headers=headers)
response = requests.get("https://api.bilibili.com/x/v2/dm/history?type=1&oid=186803402&date=2020-08-08", headers=headers)
# print(response.text)
html_doc = response.content.decode('utf-8')
print(html_doc)
# soup = BeautifulSoup(html_doc,'lxml')
format = re.compile("<d.*?>(.*?)</d>")
DanMu = format.findall(html_doc)
for i in DanMu:
with open('C:/Users/Mark/Desktop/b站弹幕.csv', "a", newline='', encoding='utf-8-sig') as csvfile:
writer = csv.writer(csvfile)
danmu = []
danmu.append(i)
writer.writerow(danmu)
4.构建并配置词云对象w,注意要加stopwords集合参数,将不想展示在词云中的词放在stopwords集合里,这里去掉“曹操”和“孔明”两个词
w = wordcloud.WordCloud(width=1000,
height=700,
background_color='white',
font_path='msyh.ttc',
mask=mk,
scale=15,
stopwords={' '},
contour_width=5,
contour_color='red')
5.对来自外部文件的文本进行中文分词,得到string
f = open('C:/Users/Mark/Desktop/b站弹幕.csv', encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)
6.将string变量传入w的generate()方法,给词云输入文字
w.generate(string)
7.将词云图片导出到当前文件夹
w.to_file('C:/Users/Mark/Desktop/output2-threekingdoms.png')
最后运行代码
- LINQ to SQL(4):OR设计器
- 在不同浏览器都实用的各窗口大小获取方法
- JavaScript获得对象属性个数的方法
- 设计模式专题(十一)——抽象工厂模式
- Canvas 图形组合方式
- HTML5 FileReader接口学习笔记
- 如何用BBED使Offline的数据文件Online
- Entity Framework4.3 Code-First基于代码的数据迁移讲解1.建立一个最初的模型和数据库 2.启动Migration(数据迁移)3.第一个数据迁移4.订制的数据迁移4.动态
- 轻松初探Python(六)—函数
- css3实现圆角边框渐变
- 设计模式专题(十二)——状态模式
- HTML5新增属性学习笔记
- HTML5标签学习笔记
- 设计模式专题(十三) ——备忘录模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python函数——Bunch配置加载
- npm install、npm install --global、npm install --save、npm install --save-dev的区别
- 3种 Springboot 全局时间格式化方式,别再写重复代码了
- pip conda 安装速度慢解决方法
- Linux 中指定使用的GPU
- 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~
- Day13 :调整数组顺序使奇数位于偶数前面
- TensorFlow 指定GPU 日志却显示的是第0块
- bazel 出现no such package '@org_tensorflow//tensorflow' 错误
- tensorflow API——tf.random_uniform 使用
- go cannot find package "golang.org/x/crypto/ssh/terminal" 解决方案
- go 中的 defer 使用及其规则
- 数据结构算法操作试题(C++/Python/Go)——938 二叉搜索树的范围和
- Android Studio 代理配置了Gradle依旧连接超时
- Dart 中变量类型 var, Object, dynamic 区别