大家好,我是天空之城,今天给大家带来,爬取B站弹幕制作词云图。

以下内容部分来自公众号数据分析与统计学之美,号主是大牛,有需要的加他。

首先打开一个b站视频https://www.bilibili.com/video/BV1PK4y1b7dt?t=1,

来到开发者模式,打开network,搜索pagelist,就会找到第一个api接口,https://api.bilibili.com/x/player/pagelist?bvid=BV1PK4y1b7dt&jsonp=jsonp,

打开这个网址,我们就会发现一个cid号码,{“code”:0,“message”:“0”,“ttl”:1,“data”:[{“cid”:201056987,“page”:1,“from”:“vupload”,“part”:“JAY-MOJITO_完整MV(更新版)”,“duration”:189,“vid”:"",“weblink”:"",“dimension”:{“width”:1920,“height”:1080,“rotate”:0}}]},

把这个cid号码跟下面这个api网址oid号码拼接,

就可以得到我们想要的弹幕网址https://api.bilibili.com/x/v1/dm/list.so?oid=XXX

下面就水到渠成了


# 数据的爬取#%%import requests
import json
import chardet
import re
from pprint import pprint
# 1.根据bvid请求得到cid
def get_cid():url = 'https://api.bilibili.com/x/player/pagelist?bvid=BV1PK4y1b7dt&jsonp=jsonp'res = requests.get(url).textjson_dict = json.loads(res)#pprint(json_dict)return json_dict["data"][0]["cid"]# 2.根据cid请求弹幕,解析弹幕得到最终的数据
"""
注意:哔哩哔哩的网页现在已经换了,那个list.so接口已经找不到,但是我们现在记住这个接口就行了。
"""
def get_data(cid):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.textpattern = re.compile('<d.*?>(.*?)</d>')data = pattern.findall(final_res)#pprint(final_res)return data# 3.保存弹幕列表
def save_to_file(data):with open("dan_mu.txt", mode="w", encoding="utf-8") as f:for i in data:f.write(i)f.write("\n")cid = get_cid()
data = get_data(cid)
save_to_file(data)#%% md# 词云图的制作#%%import pandas as pd
import numpy as np
import re
import jieba# %%# 读取评论数据
df = pd.read_csv('danmu2.csv', header=0, encoding='utf-8').astype(str)# df.head()# %%def filter_str(desstr, restr=''):# 过滤除中文以外的其他字符res = re.compile("[^\u4e00-\u9fa5^,^,^.^。^【^】^(^)^(^)^“^”^-^!^!^?^?^]")return res.sub(restr, desstr)# %%df['text'] = df['text'].apply(filter_str)
df.head()# %% md## jieba分词# %%def get_cut_words(content_series):# 读入停用词表stop_words = []with open("stop_words.txt", 'r', encoding='utf-8') as f:lines = f.readlines()for line in lines:stop_words.append(line.strip())# 添加关键词my_words = ['a', 'b']for i in my_words:jieba.add_word(i)# 自定义停用词my_stop_words = []stop_words.extend(my_stop_words)# 分词word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)# 条件筛选word_num_selected = [i for i in word_num if i not in stop_words and len(i) >= 2]return word_num_selected# %%text1 = get_cut_words(content_series=df.text)
text1[:5]import stylecloud
from IPython.display import Imagestylecloud.gen_stylecloud(text=' '.join(text1), collocations=False,# palette='cartocolors.qualitative.Pastel_5',font_path=r'‪C:\Windows\Fonts\msyh.ttc',#icon_name='fas fa-dragon',#icon_name='fas fa-dog',#icon_name='fas fa-cat',#icon_name='fas fa-dove',icon_name='fab fa-qq',# icon_name='fas fa-plane',icon_name='fas fa-smile',size=400,output_name='词云1.png')


还可以更改配色参数,让词云图实现不同的颜色
https://jiffyclub.github.io/palettable/tableau/

palette=‘tableau.BlueRed_6’,


爬取B站弹幕制作词云图相关推荐

  1. python爬取B站评论制作词云

    python爬取B站评论制作词云 江山代有才人出,B站评论占一半 废话不多说,咱们直接上代码` import imageio import jieba import wordcloud import ...

  2. 爬取指定网页并制作词云图

    利用python中的库和函数设计一个爬取读书网中"软件与程序设计"栏的程序,并对其书名制作词云图,下载其书封面存储到本地文件中. 构建多个函数分别进行网页的请求,html的获取,所 ...

  3. Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import jsonfrom PIL import Image from pyque ...

  4. python爬取豆瓣小组_Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import json from PIL import Image from pyqu ...

  5. 爬取京东评论并制作词云图

    jieba库 jieba库是python的第三方中文分词库,利用jieba可以更好的实现中文分词. jieba.cut 方法接受三个输入参数: sentence需要分词的字符串:cut_all 参数用 ...

  6. Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云

    一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...

  7. 用Python爬取B站弹幕并做成词云

    用Python爬取B站弹幕并做成词云 一.获取视频的cid号 1.进入想爬的视频,打开浏览器设置里的"开发者工具": 进入NetWork后等待requests刷出,数据够了后可随意 ...

  8. python爬取b站弹幕并进行数据可视化

    python爬取b站弹幕并进行数据可视化 1.第一步,爬取b站弹幕 我们随便打开一个b站视频 打开开发者模式,在network下搜索list,可以找到该视频的弹幕文件 打开之后是这个样子的 结构还是比 ...

  9. Python爬取B站弹幕方法介绍

    Python爬取B站弹幕方法介绍 文章目录 Python爬取B站弹幕方法介绍 前言 寻找弹幕数据 编写爬虫 B站弹幕数量 新技术介绍 参考文章 前言 最近同学要做东西,需要用 B 站的视频对应的弹幕数 ...

最新文章

  1. Machine Learning | (6) Scikit-learn的分类器算法-性能评估
  2. 【Apache 】 遇到的问题
  3. win10获取NTLM哈希
  4. taro压缩_Taro 如何开始微信小程序的开发
  5. [SQL Server]树形结构的创建
  6. 简单工厂模式(Simple Factory Pattern)
  7. 在python中使用什么函数进行输出_Python中使用pprint函数进行格式化输出的教程
  8. linux修改java占用端口号_Linux端口被占用、查看
  9. 基于sigmoid的文本多标签分类模型代码实现
  10. Qt拖放操作和打印操作
  11. minio获取上传文件_Springboot集成Minio实现对象存储服务
  12. 电力行业知识竞赛现场部分照片及用PPT模板制作的电力行业安全知识竞赛题目界面部分展示
  13. SteamVR 插件使用文档
  14. 如何将npy导入matlab,如何在Matlab中读取.npy文件(How to read .npy files in Matlab)
  15. 金融知识图谱有什么?
  16. 揭露SAP培训机构的套路
  17. promise是什么?
  18. 不可不学的摄影技巧.1—构图
  19. 异常:Fatal error loading the DB: Invalid argument. Exiting
  20. 【亲测有效】解决PPT里多个图片无法使用组合功能

热门文章

  1. 究竟是谁,害了骑手小哥?
  2. 电商行业特点以及理解电商的模式
  3. android国际化语言编码对照表
  4. 上帝给我们大龄程序员的出路,就在这!(附:现状分析)
  5. CentOS7 配置搭建安装LNMP
  6. XSS 一次跨站拆分法的应用
  7. 沐风:企业网络营销赚钱关键设计
  8. ERP开发的一些闲话—之一
  9. 自定义provider
  10. 将小写金额转换成中文大写