最近有部很火的悬疑推理剧:《隐秘的角落》,豆瓣评分9.0,周末闲来无事,在追剧的同时爬取了下该剧第一集的弹幕,我们通过对弹幕进行分析,制作词云,来看看观众们对该剧的评价如何。

整篇文章分为两部分:1.爬取爱奇艺中该剧第一集的弹幕 2.对爬取出来的弹幕做处理,并制作词云。

爬取爱奇艺弹幕

相比于其他视频网站来说,爱奇艺的弹幕难爬一些,为啥呢,因为你爬取出来的文件是乱码的(下边会贴图),需要自己再把该文件二进制编码之后才能用。具体步骤如下:

首先,打开浏览器,进入爱奇艺页面,点开该剧,弹幕打开,然后F12,浏览器下方或者右侧会弹出一些界面,选择Network,在我图上标注的框中输入“bullet”搜索弹幕相关的文件。

为啥输入这个搜索呢,因为这个单词的意思就是弹幕,程序员命名东西一般也是有规律的,还有大多视频网站的弹幕相关文件都是这个名字哈哈。如果你F12搜索之后无内容,那直接点击下浏览器刷新按钮即可。下图中箭头指的分别是Network、搜索框、弹幕文件名和弹幕内容(你可以看到,弹幕内容是乱七八糟的乱码)。还有说明一点,弹幕文件一集不止一个,爱奇艺5分钟加载一个弹幕文件(为啥5分钟,下边会解释)。

接下来,观察弹幕文件出现的规律以及弹幕文件地址中的规律,总结为以下:

弹幕文件链接规律为 https://cmts.iqiyi.com/bullet/tvid倒数4位的前两位/tvid最后两位/tvid_300_x.z;

x的计算方式为片子总时长除以300秒向上取整,即按每5分钟一个包。

tvid是啥呢,就是你URL导航栏里的这块,x为啥按5分钟一个包呢,是因为我F12之后查看两个相邻的弹幕文件包,它就是5分钟加载一个。

那第一集总共时长77分钟,按5分钟加载一个弹幕文件的话,向上取整,我们总共要抓取16个(77/5+1)弹幕文件。

抓取代码为:

import zlibimport requestsfor x in range(16):    x+=1    #x是从1到16,16怎么来的,第一集总共77分钟,爱奇艺每5分钟会加载新的弹幕    #77除以5向上取整    url='https://cmts.iqiyi.com/bullet/92/00/9000000005439200_300_'+str(x)+'.z'    bulletold=requests.get(url).content #这步取出来的文件是乱码的    bulletnew = bytearray(bulletold)#将上一步的乱码文件用二进制再编码下    xml=zlib.decompress(bulletnew, 15+32).decode('utf-8')    #把编码好的文件分别写入16个xml文件中(类似于txt文件),方便后边取数据    with open('./iqiyi'+str(x)+'.xml','a+',encoding='utf-8') as f:        f.write(xml)    f.close()

抓取出来的xml文件为下图,能看出来content字段就是弹幕:

将xml文件中的content字段取出来存为dan_mu.txt文件,方便我们之后做词云:

from xml.dom.minidom import parseimport xml.dom.minidomfor x in range(16):    x+=1    DOMTree = xml.dom.minidom.parse(r"C:\Users\dmj\PycharmProjects\test\iqiyi"+str(x)+".xml")    collection = DOMTree.documentElement    # 在集合中获取所有entry数据    entrys = collection.getElementsByTagName("entry")    print(entrys)    for entry in entrys:        content = entry.getElementsByTagName('content')[0]        print(content.childNodes[0].data)        i = content.childNodes[0].data        with open("dan_mu.txt", mode="a+", encoding="utf-8") as f:                f.write(i)                f.write("\n")

dan_mu.txt文件大概长这样:

制作词云

制作词云使用python的wordcloud库和jieba库,代码如下:

from wordcloud import WordCloudimport jiebaimport matplotlib.pyplot as plt#读取弹幕txt文件with open('./dan_mu.txt',encoding = 'utf-8', mode = 'r')as f:    myText = f.read()myText = " ".join(jieba.cut(myText))list = myText.split(" ")#清洗无用数据for i in range(len(list)-1,-1,-1):    if len(list[i])==1 or list[i]=="这个" or \            list[i]=="不是" or list[i]=="这么" \            or list[i]=="怎么" or list[i]=="这是"\            or list[i]=="还是":        list.remove(list[i])#print(list)myText= " ".join(list)print(myText)# 制作词云wordcloud = WordCloud(background_color="white", font_path="simsun.ttf", height=300, width = 400).generate(myText)# 图片展示plt.imshow(wordcloud)plt.axis("off")plt.show()# 将词云图片导出到当前文件夹wordcloud.to_file("wordCloudMo.png")

在此处可能会遇到的问题是,wordcloud这个外部库你在下载的时候可能会遇到各种花式报错,如何解决呢,参见下边这位老哥的方法:

https://blog.csdn.net/qq_42813128/article/details/82020510

词云图结果如下:

从词云图中我们可以看到,“真实”,“孩子”,“严良”,“普普”,“演技”等词语出现的频率很高。

“真实”,“演技”,“厉害”等词语是大家对这部剧的肯定;“孩子”指的是这三个主演的小孩;“普普”的演技真的很不错,大家都猜测她会不会成为下一个张子枫。

总体来讲,弹幕中大家对这部剧基本都是好评,所以还是值得一看的。

- END -

文源网络,仅供学习之用。如有侵权,联系删除。往期精彩

◆  50款开源工具你都用过吗?

◆  python+C、C++混合编程的应用

◆  python网络爬虫的基本原理详解

◆  Python自动操控excel,一小时解决你一天的工作

◆  如何用Python增强Excel,减少处理复杂数据的痛苦?

echarts词云第一次出现不了数据要刷新才能出现_隐秘的角落弹幕分析,制作词云,看看观众们对该剧的评价如何...相关推荐

  1. echarts词云第一次出现不了数据要刷新才能出现_红米K30 4G版评测:1599元的120Hz屏幕刷新率...

    1599 元起.120Hz 屏幕刷新率.前置双挖孔屏.27W 快充,索尼 IMX 686 6400 万像素主摄,高通骁龙 730G 等等,这就是最新发布的 Redmi K30 4G,手机价格一出,一阵 ...

  2. 用Python爬取王冰冰vlog弹幕并制作词云

    大家好,最近的"瓜",多到我们措手不及,可谓是"热点不断".作为程序员,我们还可能随时为此而加班. 各种评论视频"爆炸"网络,打开首页全是热 ...

  3. python爬取b站弹幕_爬取B站弹幕并且制作词云

    目录 SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 爬取弹幕 1. 从手机端口进入网页爬取找到接口 2.代码 import requests from ...

  4. 豆酱小白与python(一):提取B站弹幕并制作词云

    文章目录 1.python环境安装 2.python语法和知识学习 4.爬取B站单个视频弹幕,并绘制词云 5.爬取B站多个视频弹幕(自定义关键词),并绘制词云 6 .1.爬取单个视频弹幕绘制词云cod ...

  5. 2021-04-21爬虫爬取b站直播间弹幕并制作词云

    直播间弹幕接口 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=' + roomid 示例: json格式化 ...

  6. python爬取腾讯视频《斗罗大陆》弹幕并制作词云(WordCloud)

    最近闲来无事,就用前段时间学习的jieba分词和词云WordCloud,以及网上看的python爬虫爬取了<斗罗>最燃的107集弹幕,结合做了词云分析,从这个过程中确实学到了不少技术,下面 ...

  7. python爬取b站弹幕分析_python爬取B站视频弹幕分析并制作词云

    目录1.分析网页 2.爬虫+jieba分词+制作词云2.1爬虫 2.2jieba分词 2.3制作词云 3.成品展示 4.完整代码 1.分析网页 视频地址:https://www.bilibili.co ...

  8. python爬取胡歌相关视频弹幕,分析并制作词云

    养成习惯,先赞后看!!! 目录 1.分析网页 2.爬虫+jieba分词+制作词云 2.1爬虫 2.2jieba分词 2.3制作词云 3.成品展示 4.完整代码 1.分析网页 视频地址:https:// ...

  9. 关键词词云怎么做_《excle词云怎么制作》 除了tableau ,还有什么数据工具可以制作词云啊?...

    词云可以用哪些编程语言制作? Python有专门的库,十分方便,简单,wordcloud.教程链接Python词库入门教程 别的语言我就不知道了 怎么把词频排名前50 的绘制词云 试一下 优词www. ...

  10. 利用python制作漂亮的词云图_利用python制作词云,wordcloud神器你值得拥有

    相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...

最新文章

  1. 你的编程能力从什么时候开始突飞猛进的?
  2. RUP概述与实际应用的例子
  3. django 快速搭建blog
  4. [ARM异常]-ARM Core中与中断相关的寄存器
  5. Linux 服务器必备的安全设置,建议收藏!
  6. mysql 统计_告别硬编码,mysql 如何实现按某字段的不同取值进行统计
  7. 服务降级-启动时检查
  8. gcc 编译流程分析
  9. 使用这些 HTTP 头保护 Web 应用
  10. C++ 点(.)操作符和箭头(->)操作符
  11. C#2种类型时间戳(秒时间戳、毫秒时间戳)
  12. 同义词词林 使用 java_利用同义词林计算词的相似度——基于路径与深度的同义词词林词语相似度计算...
  13. iOS开发 适配iPhone XS Max/iPhone XR
  14. pmu2008终端服务器,PMU装置MMI子系统的研发
  15. 以太坊分片Sharding FAQ
  16. 从零开始做运营第一课:运营是做什么的?一篇文章解释清楚!
  17. Python转换音频采样率(8k到16k)
  18. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
  19. Unity线程与协程
  20. 大家在人生低谷时有多惨,怎么熬过来的(四)

热门文章

  1. 阿里云张献涛:如何修炼云计算的弹指神通
  2. 【纸牌识别】基于matlab形态学扑克牌识别【含Matlab源码 1352期】
  3. 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
  4. detr 历史解析代码_视觉/ DETR变压器
  5. 使用Pytorch的LSTM文本分类
  6. ai人工智能图片修复_潜在客户追踪已中断,以及如何使用AI和自动化进行修复...
  7. 小程序会话服务器,完美解决小程序session问题
  8. 集群为什么最少6个_结构化面试答题技巧:多年的经验告诉你,最少要注意这6个方面...
  9. 农学院计算机考试题,天津农学院计算机考试参考.doc
  10. centos www服务器文件unable create,Centos Vsftpd 无上传权限 (553 Could not create file)