bilibili怎么设置弹幕数量_python爬取B站视频弹幕分析并制作词云
1.分析网页
视频地址: www.bilibili.com/video/BV19E… 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀。 这次我选取的是自己 唯一的爆款视频 。就是下面这个。
私信小编01即可获取Python学习资料
希望大家能够多多支持up,up在这里谢过大家了。 打开网址我们能够发现弹幕信息是存储在这一块的。
本来以为是可以直接爬到的,但是当我点开F12检查网页的时候却发现:
他很明显只加载了一部分的弹幕信息,那么怎么获取呢,别急下面有一个查看历史弹幕信息,我们点击一下试试看。
既然知道了信息是藏在哪里的,那么接下来就是简单分析一下他的 url地址的格式
了。
可以看到重点其实就在date上,只要更换date就能获得那一天的弹幕了,所以我们基本确定我们的URL地址。接下来就是爬虫了。
2.爬虫+jieba分词+制作词云
2.1爬虫
首先是简单的先获取整个网页信息,但是获取的过程中,出现了这个错误。
这个大家都懂是啥意思,那么我们怎么解决的?很简单,我们将账号信息带进去就行了,那么怎么带呢?这里我选择的是直接将 cookie信息
放入请求头之中。这个cookie信息大家需要根据自己的浏览返回的信息进行选择。
像这样,放入headers中。
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", "cookie": "_uuid=32558797-D0FE-C0F7-536C-63AF0D8AE40770652infoc; buvid3=3DB514DE-EAB4-4ED9-B597-BCDD98AF986240968infoc; sid=hwpgj1q2; DedeUserID__ckMd5=e16b5b4e38e97a2b; CURRENT_FNVAL=16; rpdid=|(JYl~Yuukl~0J'ulmR|uuukk; LIVE_BUVID=AUTO7915950709280947; CURRENT_QUALITY=64; UM_distinctid=173a99a3d29656-0dfad7ca6e9865-3b634404-1fa400-173a99a3d2a9f0; bili_jct=69d8904981c02268b8880fc10dc2abac; bp_t_offset_103134642=420625431706221182; SESSDATA=048bf530%2C1611830350%2C409d1*81; DedeUserID=103134642; PVID=1; bp_video_offset_103134642=422972760179214717; bfe_id=6f285c892d9d3c1f8f020adad8bed553"}复制代码
这样我们便能爬取到了
接下来获取弹幕信息。这里很简单通过xpath就能获取到。
parse=parsel.Selector(html)links=parse.xpath("//d/text()").getall()print(links)复制代码
既然已经获取到弹幕了,我们就需要将这些信息存储起来,用于我们接下来的操作。 这里我们选择将它存储到CSV文件中具体操作其实和之前的文件下载操作相差不大。
for i in links: with open(r'C:甥敳獲瓤瓤DesktopB站弹幕.csv','a',newline='',encoding='utf-8-sig') as f: writer=csv.writer(f) links=[] links.append(i) writer.writerow(links)复制代码
打开之后就是这样的:
2.2jieba分词
文件都存储好了,那么我接下来的第一步就是将我们的弹幕进行jieba分词,拆解成一个一个的词语
f =open(r'C:甥敳獲瓤瓤DesktopB站弹幕.csv',encoding='utf-8')#打开文件text=f.read() #读取文件text_list=jieba.analyse.extract_tags(text,topK=40)#进行jieba分词,并且取频率出现最高的40个词text_list=" ".join(text_list)#用空格将这些字符串连接起来print(text_list)复制代码
效果:
2.3制作词云
既然词我们已经准备好了,那么我们接下来就是将它制作成词云。
#创建自定义图片样式img=plt.imread('./img/huge.jpg')w=wordcloud.WordCloud( width=1500, height=1000, font_path="STXIHEI.TTF",#设置字体的格式 字体所在位置C:WindowsFonts background_color="white", scale=50, contour_width=5, contour_color="red", mask=img,#图片遮罩层 #设置屏蔽词 stopwords={"00","天下第一","bgm","周董","真的","胡是","你币","肖战","游记","周杰伦","陈奕迅","这个"})w.generate_from_text(text_list)#绘制图片fig=plt.figure(1)plt.imshow(w)plt.axis("off")plt.show() #显示生成的词云文件复制代码
在设置字体样式的过程中千万要 选用能够识别中文的字体样式 ,否则会变成一堆方框。字体所在位置字体所在位置 C:WindowsFonts 接着只要耐心等程序运行完就行了。
3.成品展示
4.完整代码
import requestsimport parselimport csvimport jieba.analyseimport wordcloudfrom matplotlib import pylab as plturl='https://api.bilibili.com/x/v2/dm/history?type=1&oid=160472309&date=2020-08-12'headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", "cookie": "_uuid=32558797-D0FE-C0F7-536C-63AF0D8AE40770652infoc; buvid3=3DB514DE-EAB4-4ED9-B597-BCDD98AF986240968infoc; sid=hwpgj1q2; DedeUserID__ckMd5=e16b5b4e38e97a2b; CURRENT_FNVAL=16; rpdid=|(JYl~Yuukl~0J'ulmR|uuukk; LIVE_BUVID=AUTO7915950709280947; CURRENT_QUALITY=64; UM_distinctid=173a99a3d29656-0dfad7ca6e9865-3b634404-1fa400-173a99a3d2a9f0; bili_jct=69d8904981c02268b8880fc10dc2abac; bp_t_offset_103134642=420625431706221182; SESSDATA=048bf530%2C1611830350%2C409d1*81; DedeUserID=103134642; PVID=1; bp_video_offset_103134642=422972760179214717; bfe_id=6f285c892d9d3c1f8f020adad8bed553"}response=requests.get(url,headers=headers)html=response.content.decode("utf-8")# print(html)parse=parsel.Selector(html)links=parse.xpath("//d/text()").getall()# print(links)for i in links: with open(r'C:甥敳獲瓤瓤DesktopB站弹幕.csv','a',newline='',encoding='utf-8-sig') as f: writer=csv.writer(f) links=[] links.append(i) writer.writerow(links)# #制作词云图f =open(r'C:甥敳獲瓤瓤DesktopB站弹幕.csv',encoding='utf-8')text=f.read()text_list=jieba.analyse.extract_tags(text,topK=40)text_list=" ".join(text_list)print(text_list)#img=plt.imread('./img/huge.jpg')w=wordcloud.WordCloud( width=1500, height=1000, font_path="STXIHEI.TTF", background_color="white", scale=50, contour_width=5, contour_color="red", mask=img, stopwords={"00","天下第一","bgm","周董","真的","胡是","你币","肖战","游记","周杰伦","陈奕迅","这个"})w.generate_from_text(text_list)#绘制图片fig=plt.figure(1)plt.imshow(w)plt.axis("off")plt.show() #显示生成的词云文件复制代码
bilibili怎么设置弹幕数量_python爬取B站视频弹幕分析并制作词云相关推荐
- python爬取b站弹幕分析_python爬取B站视频弹幕分析并制作词云
目录1.分析网页 2.爬虫+jieba分词+制作词云2.1爬虫 2.2jieba分词 2.3制作词云 3.成品展示 4.完整代码 1.分析网页 视频地址:https://www.bilibili.co ...
- python3抓取b站弹幕_python3写爬取B站视频弹幕功能
需要准备的环境: 一个B站账号,需要先登录,否则不能查看历史弹幕记录 联网的电脑和顺手的浏览器,我用的Chrome Python3环境以及request模块,安装使用命令,换源比较快: pip3 in ...
- python爬取bilibili弹幕_用Python爬取B站视频弹幕
原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...
- python爬取B站视频弹幕分析并制作词云
1.分析网页 视频地址: www.bilibili.com/video/BV19E- 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀. 这次我选取的是自己 唯一的爆款 ...
- python b站 排行_Python 爬取B站 视频热度排行数据
时间:2019-03-07 概述:抓取数据 爬虫 采集 Python 爬取bilibili站 视频热度排行视频数据,有文件为 bilibili.py,只需输入一个大模块名,如游戏模块名为'game', ...
- python 爬取B站视频弹幕信息
获取B站视频弹幕,相对来说很简单,需要用到的知识点有requests.re两个库.requests用来获得网页信息,re正则匹配获取你需要的信息,当然还有其他的方法,例如Xpath. 进入你所观看的视 ...
- b站网页版倍速无效_python爬取B站网页弹幕内容,并将爬取内容以五角星的形式显示出来...
思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组成五角星图形后,以图片的形式输出 使用到 ...
- 爬取B站视频弹幕生成词云
效果预览 以B站UP主可乐三太火影1-720集解说视频2020-08-07弹幕爬取为例,生成词云 代码 # -*- coding: utf-8 -*- # @Time : 2020/8/8 22:11 ...
- 用python爬取视频及字幕_Python3爬取B站视频弹幕文字+视频
需要准备的环境: 1.一个B站账号,需要先登录,否则不能查看历史弹幕记录 2.联网的电脑和顺手的浏览器,我用的Chrome 3.Python3环境以及request模块,安装使用命令,换源比较快: 爬 ...
最新文章
- 安装VCenter提示数据库排序规则有问题
- NLP机器翻译深度学习实战课程基础 | 深度应用
- MassTransit_契约的创建
- erp系统为什么要选稳定性强的?看完你就明白了
- spring mvc 自动生成代码
- JS 控制RadioButtonList 获得上传文件类型后选中
- python: append、extend、insert、add
- 牛客 21302 被3整除的子序列 (动态规划、Python)
- ZZULIOJ1046-1050Python解法
- ​Win10磁盘管理​
- 在数据迁移过程中如何迁移holo(memory)表?
- python——方便数的据存储模式Bunch
- 《machine learning in action》机器学习 算法学习笔记 决策树模型
- Python 阶段性总结《抽奖系统》(文末附代码地址)
- 贾小伟—Web前端开发工程师(作品集)
- js颜色 RGB 和 16进制转换
- php 里的cl框架手册,CI框架学习笔记(一)
- 实况足球2017 for mac打不开怎么办?10.13系统无法运行实况足球2017 for mac是什么原因?
- Failed to connect to 127.0.0.1 port 1086: Connection refused
- 微信小程序旅游服务平台+后台管理系统|前后分离VUE
热门文章
- 语言毕业设计选题及源代码_区块链毕业设计论文「11」
- java 按行读取大文件文件内容_Java实现按行读取大文件
- Python3搭建Django框架浅析
- java分表插件_fastmybatis编写分表插件
- nbns协议_网络协议详解1 - NBNS
- c++如何定义二维数组结构体_原来数组还可以这么玩(宏把数组玩坏了)
- ajax可以在localhost上用吗_你还不知道跨域问题是怎样造成的吗?
- python练手小游戏_Python小游戏练手EMS员工项目自学者练习
- oauth最后的确认按钮_spring-oauth集成cas单点登录,登陆完成进入授权页面后,按回退按钮进入404页面的问题...
- 【深度学习】DIY 人脸识别技术的探索(二)