最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 《隐秘的角落》弹幕分析,看看观众们对该剧的评价如何

    正文概述    2020-07-11   253

    《隐秘的角落》弹幕分析,看看观众们对该剧的评价如何

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

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

    1.爬取爱奇艺弹幕

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

    首先,打开浏览器,进入爱奇艺页面,点开该剧,弹幕打开,然后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 zlib
    import requests
    for 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 parse
    import xml.dom.minidom
    for 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文件大概长这样:

    《隐秘的角落》弹幕分析,看看观众们对该剧的评价如何

     

    2.制作词云

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

    from wordcloud import WordCloud
    import jieba
    import 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

    词云图结果如下:

    《隐秘的角落》弹幕分析,看看观众们对该剧的评价如何

     

    从词云图中我们可以看到,“真实”,“孩子”,“严良”,“普普”,“演技”等词语出现的频率很高。“真实”,“演技”,“厉害”等词语是大家对这部剧的肯定;“孩子”指的是这三个主演的小孩;“普普”的演技真的很不错,大家都猜测她会不会成为下一个张子枫。

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


        更多python相关文章,请关注Python自学网。

    起源地下载网 » 《隐秘的角落》弹幕分析,看看观众们对该剧的评价如何

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元