Python教程网
--左手Python,右手AI!

我不要你觉得,我只要我觉得,听我的中餐厅弹幕数据分析

这段时间奇怪了,周围朋友都爱上了同一个口头禅“我不要你觉得,我只要我觉得”;我就纳闷了汉语文字那么多,你们偏偏都爱上了同一句,我怀疑他们在玩梗,果不其然,在B站的鬼畜区了解到了真相。

绿大暗仅凭一己之力,将综艺节目《中餐厅3》推上了热门,成为了本季度当之无愧的综艺之王,“我不要你觉得,我只要我觉得”,“别说话,听我的”等是绿大暗的经典名言,这些名言被称为“明学”,甚至隐隐与“六学”齐名,两开花。

对一部视频作品,如果说评论是观众观看后的沉思,那么弹幕就是吃瓜群众情感的实时流露,为了一窥“明学”的真谛,我打算爬一爬《中餐厅3》的弹幕数据,做一个情感分析。

废话不多说,“起锅烧油”

一、分析网页爬数据

1.确认加载方式

《中餐厅3》在芒果TV独播,打开Chrome浏览器,访问第1集的链接https://www.mgtv.com/b/330026/6086563.html,通过禁用页面javaScript发现页面视频和弹幕都无法加载,并且右键-查看页面源码,搜索不到弹幕的文字,说明数据是异步加载的

2.抓包分析

打开刚刚关闭的javaScript,重新加载页面,F12打开开发者工具,仔细查找XHRJS最终在js中找到了弹幕数据,链接是这样的
https://galaxy.bz.mgtv.com/rdbarrage?version=2.0.0&vid=6086563&abroad=0&pid=&os=&uuid=&deviceid=&cid=330026&ticket=&time=60102&mac=&platform=0&callback=jsonp_1568127366004_84552

弹幕数据是json格式,但是伪装成了jQuery藏在JS里面。

3.链接分析

从抓包的地址看,弹幕的真实请求地址是https://galaxy.bz.mgtv.com/rdbarrage?,其后是一堆相关的参数,相关的参数见下图

上图中许多参数字段是没有值的,所以我们试着简化请求地址链接,最终发现https://galaxy.bz.mgtv.com/rdbarrage?vid=6086563&cid=330026&time=60102仍然可以请求成功,也就是说只保留vid,cid.time3个参数就可以了

接下来分析vid,cid.time这3个参数

首先我们把前3期的url列出来

第1期:https://www.mgtv.com/b/330026/6086563.html

第2期:https://www.mgtv.com/b/330026/6128068.html

第3期:https://www.mgtv.com/b/330026/6168375.html

发现上述url中330026没有变化,只有后面的一串文字发生了变化,通过和下图中参数对比,发现url中第一个不变的数字串就是我们要寻找的vid,而后面的数字串就是cid,不难看出,vid是“中餐厅3”在芒果TV平台中的编号,而cid是中餐厅3不同期数的编号。

那么参数time是什么?
首先通过time英文的本身来看,她是一个和时间有关系的变量,那么可以有以下猜测
1. time是本波弹幕开始加载的时间;
2. time是本波弹幕播放的总时长

然后观察4条相邻的弹幕js数据,当前弹幕的next的值和下一条弹幕js文件请求的time值非常接近,于是尝试把
https://galaxy.bz.mgtv.com/rdbarrage?vid=6086563&cid=330026&time=120083中的time值修改为120000,然后再次请求数据,发现仍然可以成功请求到对应的数据

上图中在next参数的旁边还有个参数interval,她的英文意思是“间隔,间距”,而弹幕的time值依次是60000、120000、180000….,差值为60000,所以推测next=1000*interval,所以很有可能next的单位是ms,而interval的单位是s。

为了验证猜想,我们把视频进度条拉到最后,本期的视频长度为104.01分钟,而最后一条弹幕的next为6240000,6240000ms转化为分钟刚好是104min,验证成立:time是每条弹幕开始播放的时间。

至此所有的参数都已经搞清楚了

二、爬取数据

采用request请求数据,导入我们需要调用的包

import requests
import json 
import pandas as pd
import time

首先定义一个主函数用来获取每条弹幕js文件的内容,并将获得的数据转化为json格式。传入的参数time_zimu是每条弹幕开始播放的时间

def main(time_zimu):
    url='https://galaxy.bz.mgtv.com/rdbarrage?vid=6337608&cid=330026&time='+str(time_zimu)
    html=requests.get(url,headers=headers)
    html.encoding="utf-8"
    html_data=html.text[html.text.find('['):-2]
    html_data_json=json.loads(html_data)

这需要注意一点,因为我们要获取的json数据是在jQuery中,为了避免出错,我们这里直接获取json部分的数据html_data=html.text[html.text.find('['):-2],效果如下图

将数据转为json格式后,其中typeuid,content,time是我们想要的数据

构造获取弹幕信息函数,传入json的数据orgin_data,通过循环重复取出单条弹幕信息,并提取对应的字段

def get_infos(orgin_data):
    for infos in orgin_data:
        yield[
        infos['type'],
        infos['uid'],
        infos['content'],
        infos['time']
        ]

构造保存数据函数,将获得的数据构建成DaraFrame,将数据保存到csv文件中

def save_data(single_data):
    data=[]
    data.extend(single_data)
    columns=['type','uid','content','time']
    data_frame=pd.DataFrame(data=data,columns=columns)
    data_frame.to_csv('data2019.csv',mode='a')

最后封装函数,循环获取所有弹幕文件

if __name__ == "__main__":
    time_c=60000 #加载弹幕时间间隔
    for i in range(0,110): #此处110取决于最后弹幕的出现时间
        print('开始 时间为'+str(i)+'的字幕')
        main(time_c*i)
        time.sleep(3)

三、展示成果

运行爬虫,开始工作爬取弹幕

展示下我们爬取到的弹幕数据文件的前几行数据,达成获得弹幕数据成就

data=pd.read_csv('data2019.csv')
print(data.head())

四、one more thing

这篇文章并没有太大难度,但是对于新手来说,网上的的教程都集中在代码部分,而前期的分析工作则一笔带过,其实这部分才是最重要的部分,这也是我写本文的初衷。

本文完整代码,扫描下方二维码在「小詹学Python」后台回复「中餐厅」即可获取!

赞(12)
未经允许不得转载:Python教程网 » 我不要你觉得,我只要我觉得,听我的中餐厅弹幕数据分析
分享到: 更多 (0)

评论 115

  1. #1

    《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!
    agxoolpkcse
    gxoolpkcse http://www.gu3h8gefc9rtb09k6l4826uq6p3042m0s.org/
    [url=http://www.gu3h8gefc9rtb09k6l4826uq6p3042m0s.org/]ugxoolpkcse[/url]

    匿名6个月前 (09-28)回复
  2. #2
  3. #3

    Grain Metal Detector

    匿名6个月前 (10-10)回复
  4. #4

    Fan

    匿名6个月前 (10-12)回复
  5. #5

    7ml glass vial

    匿名6个月前 (10-13)回复
  6. #6
  7. #7
  8. #8
  9. #9

    Beans Packaging Machine

    匿名6个月前 (10-16)回复
  10. #10

    GW 4C20

    匿名6个月前 (10-17)回复
  11. #11

    Benq Interactive Flat Panel Pdf

    匿名6个月前 (10-18)回复
  12. #12

    lift gas spring for industry

    匿名6个月前 (10-19)回复
  13. #13

    Best mask factory

    匿名6个月前 (10-19)回复
  14. #14

    Lock Nuts

    匿名6个月前 (10-20)回复
  15. #15

    Dictator Door Closer

    匿名6个月前 (10-20)回复
  16. #16

    Hot Rolled Steel Tubes Price

    匿名6个月前 (10-22)回复
  17. #17

    File Tray Price

    匿名6个月前 (10-23)回复
  18. #18

    Mini Electric Grinder Factory

    匿名6个月前 (10-23)回复
  19. #19

    Hydraulic Pressure Pipe Factory

    匿名6个月前 (10-24)回复
  20. #20
  21. #21

    Lock Device Factory

    匿名5个月前 (10-29)回复
  22. #22
  23. #23

    27 Double Wall Oven

    匿名5个月前 (11-02)回复
  24. #24

    Fiber Bulk

    匿名5个月前 (11-03)回复
  25. #25
  26. #26

    China Molding Casting Flask

    匿名5个月前 (11-10)回复
  27. #27

    Plastic Mould Parts

    匿名5个月前 (11-10)回复
  28. #28
  29. #29

    澳门博狗

    匿名5个月前 (11-12)回复
  30. #30
  31. #31

    Pulp Box For Cosmetics

    匿名5个月前 (11-13)回复
  32. #32

    Hotel Bath Gel Price

    匿名5个月前 (11-17)回复
  33. #33

    Bain Non Rebreathing Circuit

    匿名5个月前 (11-17)回复
  34. #34
  35. #35
  36. #36

    Lens Prism Price

    匿名4个月前 (11-29)回复
  37. #37
  38. #38

    Electrical Distribution Box

    匿名4个月前 (12-04)回复
  39. #39

    Waterproof Materials

    匿名4个月前 (12-05)回复
  40. #40
  41. #41

    China Cotton Diaper

    匿名2个月前 (02-15)回复
  42. #42

    Carbon brush

    匿名2个月前 (02-25)回复
  43. #43

    erbium doped amplifier,

    匿名1个月前 (03-01)回复
  44. #44

    Aluminum Stearate Defoamer

    匿名1个月前 (03-01)回复
  45. #45

    日本AV性爱电影

    匿名1个月前 (03-01)回复
  46. #46

    Best Wireless Repeater 2019

    匿名1个月前 (03-04)回复
  47. #47

    tadalafil pills: http://tadalafilonline20.com/ tadalafil dosage

    匿名1个月前 (03-05)回复
  48. #48

    tadalafil max dose tadalafil 40 mg from india
    40 mg tadalafil

    匿名1个月前 (03-05)回复
  49. #49
  50. #50

    澳门博狗

    匿名1个月前 (03-07)回复
  51. #51

    overseas pharmacies shipping to usa meds without a doctor prescription

    匿名1个月前 (03-08)回复
  52. #52

    viagra 100mg price buy viagra online usa
    buy generic 100mg viagra online

    匿名1个月前 (03-11)回复
  53. #53

    buy real viagra online viagra 100mg price
    cheap viagra online

    匿名1个月前 (03-11)回复
  54. #54

    viagra cost viagra over the counter
    viagra online usa

    匿名4周前 (03-12)回复
  55. #55

    viagra cost where to buy viagra
    cost of viagra

    匿名4周前 (03-12)回复
  56. #56

    cost of viagra how much is viagra
    buy viagra online canada

    匿名4周前 (03-13)回复
  57. #57

    Automatic Egg Washer

    匿名4周前 (03-14)回复
  58. #58

    viagra price viagra without a doctor prescription usa
    п»їviagra pills

    匿名4周前 (03-14)回复
  59. #59

    viagra from india viagra without a doctor prescription usa
    viagra cost

    匿名4周前 (03-14)回复
  60. #60

    cost of viagra viagra online usa
    viagra amazon

    匿名4周前 (03-15)回复
  61. #61

    cost of viagra best place to buy generic viagra online
    viagra without a doctor prescription usa

    匿名4周前 (03-15)回复
  62. #62

    where can i buy valtrex in uk valtrex price uk
    ed doctor

    匿名4周前 (03-16)回复
  63. #63

    Cryogenic Storage

    匿名4周前 (03-16)回复
  64. #64

    Custom Medical Face Masks

    匿名4周前 (03-17)回复
  65. #65

    diflucan without a prescription diflucan generic cost
    mexican pharmacy without prescription

    匿名4周前 (03-17)回复
  66. #66

    order diflucan online uk diflucan tabs

    匿名4周前 (03-17)回复
  67. #67

    best place to buy viagra online https://viagrapills100.com/ viagra online usa

    匿名3周前 (03-18)回复
  68. #68

    viagra 100mg price https://viagrapills100.com/ buy generic 100mg viagra online

    匿名3周前 (03-18)回复
  69. #69

    viagra without a doctor prescription https://viagrapills100.com/ buy viagra online canada

    匿名3周前 (03-19)回复
  70. #70

    where to buy viagra online https://viagrapills100.com/ online doctor prescription for viagra

    匿名3周前 (03-19)回复
  71. #71

    viagra over the counter https://viagrapills100.com/ where can i buy viagra over the counter

    匿名3周前 (03-20)回复
  72. #72

    tadalafil professional – tadalafil plus tadalafil liquid

    匿名3周前 (03-21)回复
  73. #73

    cheap drugs order ed pills
    cheap drugs online

    匿名3周前 (03-22)回复
  74. #74

    cheap ed pills buy ed drugs
    online canadian drugstore

    匿名3周前 (03-23)回复
  75. #75

    ed pills without a doctor prescription cheap ed pills
    cheap ed pills usa

    匿名3周前 (03-24)回复
  76. #76

    Lzasmd – utilisation du tadalafil Ewaszh bvfmdm

    匿名2周前 (03-24)回复
  77. #77

    Oqtncs – lasix 40mg Sjokgi keejow

    匿名2周前 (03-25)回复
  78. #78

    buy neurontin 100 mg: buy gabapentin – canada where to buy neurontin

    匿名2周前 (03-25)回复
  79. #79

    http://prednisonest.com/# prednisone medicine

    匿名2周前 (03-26)回复
  80. #80

    Wcrbyt – azithromycin Dqcgvy fjspgp

    匿名2周前 (03-26)回复
  81. #81

    buy zithromax 1000 mg online: zithromax over the counter – zithromax 250 price

    匿名2周前 (03-27)回复
  82. #82

    https://gabapentinst.com/# generic neurontin 300 mg

    匿名2周前 (03-27)回复
  83. #83

    zithromax 500 mg lowest price drugstore online: zithromax – zithromax for sale online

    匿名2周前 (03-28)回复
  84. #84

    Btblmb – cheap tadalafil 5 mg Fmuuzj tgatld

    匿名2周前 (03-28)回复
  85. #85

    http://zithromaxst.com/# zithromax 500 mg

    匿名2周前 (03-28)回复
  86. #86

    http://zithromaxproff.com/# zithromax 250mg
    zithromax pill

    匿名2周前 (03-30)回复
  87. #87

    https://zithromaxproff.com/# average cost of generic zithromax
    where can you buy zithromax

    匿名2周前 (03-30)回复
  88. #88

    Jcbscl – essaywriters Zuynxs qutfje

    匿名2周前 (03-30)回复
  89. #89

    https://zithromaxproff.com/# zithromax for sale 500 mg
    average cost of generic zithromax

    匿名2周前 (03-31)回复
  90. #90

    http://zithromaxproff.com/# zithromax buy online no prescription
    zithromax prescription

    匿名2周前 (03-31)回复
  91. #91

    Ovbkmg – buy sildenafil uk Otknoh exnlnt

    匿名1周前 (04-01)回复
  92. #92

    https://zithromaxproff.com/# can i buy zithromax over the counter
    zithromax over the counter uk

    匿名1周前 (04-01)回复
  93. #93

    Abdqbv – where to buy generic viagra online in canada Fsjaxp wksxsb

    匿名1周前 (04-01)回复
  94. #94

    Wow that was odd. I just wrote an very long comment but after I clicked submit my comment didn’t appear.
    Grrrr… well I’m not writing all that over again. Anyway, just wanted to say
    superb blog!

    Feel free to visit my webpage – Bypass Shell

    匿名1周前 (04-01)回复
  95. #95

    buy noroxin generic: generic chloramphenicol
    noroxin online

    匿名1周前 (04-02)回复
  96. #96

    order suprax online: buy clindamycin
    order fucidin

    匿名1周前 (04-02)回复
  97. #97

    Ryurnh – purpose of college essay Tqvqog ztvrwv

    匿名1周前 (04-02)回复
  98. #98

    order tetracycline online: myambutol generic
    buy keflex generic

    匿名1周前 (04-03)回复
  99. #99

    generic amoxil: tinidazole generic
    roxithromycin generic

    匿名1周前 (04-03)回复
  100. #100

    online medications from india: online indian pharmacies india pharmacy without dr prescriptions

    匿名6天前回复
  101. #101

    all generic meds from india: online indian pharmacies online medications from india

    匿名6天前回复
  102. #102

    Ytytdi – acheter viagra en europe Xezrrh kgxqaw

    匿名6天前回复
  103. #103

    meds from india: all generic meds from india prescriptions from india

    匿名5天前回复
  104. #104

    best india pharmacy: india pharmacy without dr prescriptions best india pharmacy

    匿名5天前回复
  105. #105

    Gdavua – propecia 1mg canada Bjgdms rartyt

    匿名4天前回复
  106. #106

    united pharmacy india: buy medication online from india trusted india online pharmacies

    匿名4天前回复
  107. #107

    levitra pills: best erectile dysfunction pills review viagra pills

    匿名3天前回复
  108. #108

    Ugdpxf – college essays dos and don‘ts Ndphox qctypk

    匿名3天前回复
  109. #109

    erectile dysfunction pills: viagra pills mail order erectile dysfunction pills

    匿名3天前回复
  110. #110

    plenty of fish dating site of free dating
    single chat sites

    匿名2天前回复
  111. #111

    Opkeil – sildenafil dose in pah Xqqdow xoaaqb

    匿名1天前回复
  112. #112

    best erectile dysfunction pills: cialis pills online pills for erectile dysfunction

    匿名1天前回复
  113. #113

    levitra pills: kamagra pills viagra pills

    匿名1天前回复
  114. #114

    canadian online pharmacy viagra viagra without a prescription viagra without a prescription

    匿名16小时前回复
  115. #115

    viagra prescription online viagra online no prescription viagra no prescription

    匿名12小时前回复