用弹幕看一场NBA(公牛 - 老鹰)

 

 

 

我喜欢看NBA,几乎不会错过每一场骑士的比赛,老实说我是欧文的粉丝,有一天我在看比赛,突然看到腾讯NBA下面的弹幕(在比赛中和结束之后的评论区),这是圣诞大战的时候截的图,当然舍不得截掉小七。

看重点:下面的评论区,这个评论区基本上十几秒会刷新一次,同时你也可以往上拉取之前的评论,于是产生了这么个想法:我要把这些评论弹幕都抓取出来,我们可不可以通过这些弹幕去了解一场比赛?听起来还是挺有趣的,那么动手开始做吧。

首先,我要抓的是手机上的评论,所以用上了Fidder,抓包工具,没用过的可以点击这里了解一下:Fiddler 抓包工具总结 - ﹏猴子请来的救兵 ,开始抓包之后就是这样的。

 

仔细观察就会发现,所有评论都是从这个url拉取的,url中有很明显的comment。

 

http://183.232.103.198/comment/timeline?targetId=1499224113&pageflag=1&commentId=6228459552623915009&os=android&osvid=23&appvid=4.5.0&appvcode=450&network=wifi&store=96&width=1080&height=1812&deviceId=866696028198537&guid=073E23E900E081E142ED056B56B029BE&omgid=36149a85e6dcca4cd1fa75ad94b94646edef0010211a07&omgbizid=743cbe9f962a264c52f9c50017b7be4c86070120211a07

点击去看一下就是评论相关的JSON了,信息主要包括:发表评论的人的ID、昵称、头像、性别、国家地区、发表时间、发表内容等等,对我来说比较重要的是时间和内容,每个JSON里面大约有20-30条评论。

然后我们再多对比评论信息的url会发现targetId应该是一场比赛的id,commentId会变化,而这个数值我一开始猜想是时间戳进过了某种加密算出来的,后来我发现请求的下一个评论信息url的commentId隐藏在上一次的JSON中最后的评论中,所以思路就来了。

我拿到最新的一个commentId就可以不断的往下走,一直到评论全部取出,代码如下:有一点需要注意的,腾讯做了限制正常只能往前取5000条评论,数量较小我就没有存储数据库。

到这里,就差不多把所有的评论取出来了,我这次抓取的是1月21日九点钟公牛对老鹰比赛的数据,共计七千多条评论,看过比赛的都知道公牛大败。我忍住没有看比赛,也没有看比赛综述,下面我们看看这些评论数据如何带我们看一场比赛。

 

选取1月21日九点钟公牛对老鹰比赛的原因:

  • 时间周六,不用受工作时间影响
  • 不选骑士或者勇士,因为粉丝数量大,评论带有感情色彩太多
  • 九点钟大部分已经醒了

好了,下面开始看比赛吧,首先是看一下球迷的统计数据。

1、先看下全球的分布,用腾讯NBA的肯定都是中国球迷吧,所以这样的分布图一定程度上反应的是:中国的篮球迷最喜欢去哪个国家。颜色越深,人数越多。

 

这样的图片不是很明显,因为在中国的球迷太多,导致其他的国家数量对比不明显,我们可以先把中国部分数据先去除掉再看,可以不看这几个阿开头的国家,应该是默认的国家,不然打死我也不相信有49位球迷在阿鲁巴。

 

阿鲁巴(Aruba)是一个位于 加勒比海地区的岛屿

你一定以为排在第四的阿鲁巴是这个:

2、看看球迷在国内的省份的分布

3、性别统计,你们自己感受以下。

正式进入比赛,按照每分钟发表的评论总的数量做成如下图:

 

抓取的评论的时间是从9:09开始,一直到下午1:25结束。同时可以看到在11:18的时候,评论数量骤然下降,猜测是此时比赛刚好结束。我们随着这个时间轴去看评论,在看评论之前先做一些预测。

 

  • 图中有两处小高峰并且随着时间不断增长,第一处:9:32 ~ 9:51 和 11:12 ~ 11:18 ,第一处9:32 ~ 9:51或许是比赛小高潮,从时间上来看应该处于第二节刚开始,有可能的情况是9:32 ~ 9:51,两队比赛咬的 还比较紧,打的很焦灼。
  • 第二处小高峰: 11:12 ~ 11:18,比赛接近尾声,大家想看个结尾;另一种原因如上第一处小高峰就是比赛到最后仍然有悬念,而中间从9:51 ~ 11:12是比分差距较大,所以大部分人都走了,而最后时刻突然发现比赛又有了悬念。

 

以上是我的猜想,那么我们是否能通过评论来验证呢?进入下一步。

 

用jieba分词并且使用以下算法求出各个时间段的所有的关键词。

 

我们按照时间段来看的话:在9:32有关于评论区中大部分没有在讨论比赛,关键词求拉出现了上千次,这个用过腾讯NBA的球迷都知道,因为腾讯设了会员,只有会员才能看比赛,会员可以建立包厢拉不是会员的人一起免费看比赛。

但是比较奇怪的是:这场比赛是免费的场次,所以不是会员特权。这可能印证了我之前的猜想:这些在各场比赛中都会出现的求拉的人可能都是机器人,于是我去把这些评论都拉取了出来想看看具体评论内容,对这些含有求拉的评论再进行关键词提取。

 

关键词为:求拉、火箭、勇士。

 

一场公牛-老鹰的比赛,为何都在讨论求拉、火箭和勇士呢?我在当日赛程找到了答案,在1月21日当天同一时间有一场火箭-勇士的比赛:

  • 西部第一与第三的较量
  • 非免费场次、会员场次

有如此多的人到其他比赛求拉也是情有可原。

回到9:32之前的评论,还有其他几个关键词:美娜、公牛,其中美娜为本场比赛女嘉宾,而在五个关键词当中只有一个关键词公牛是与比赛相关的,得出的结论是:在本场比赛的前半个小时,大家几乎很少关心的是比赛本身,有小部分是公牛球迷,还有小部分是美娜球迷。那么在这评论数量持续增长的时间里,到底是公牛的球迷数量的增长还是勇士火箭球迷来求拉的人数量增长呢?

为了解决这个问题,我们需要看一下随着时间的增长两种评论数量随着时间的变化。蓝色段面积代表的是比赛无关的评论数量,下面代表的是于比赛相关的评论数量。

 

看图形可以发现,比赛无关评论数量与比赛相关数量增长几乎同步,在9:32的时候达到最高值。但是我们很明显地发现,大约在9:22时候,评论数量相对多的情况下比赛相关评论占有量大,而9:32虽然总体达到峰值,但是比赛无关评论数量也占有很大比例。

 

那么开始的预测模型需要修改:也就是在9:22之前比赛分差还未拉开,但是9:22(即第一节后半节)分差开始拉大。

 

接着看9:32~9:51评论数量达到一个高峰,比赛相关的关键词为:公牛、韦德,剔除掉比赛无关关键词评论,继续作图。

 

在此阶段,总体评论数量较多,而与比赛无关的评论(即包含:勇士、火箭)越来越少,比例也是越来越少,更多的人开始讨论公牛以及韦德。此阶段说明:不关心比赛的人(勇士球迷、火箭球迷)都离开了直播间、同时更多的公牛以及韦德球迷加入了直播间。

  • 讨论韦德的很多,因为个人情感很重

那么到这里究竟如何判断谁领先呢?我们不得而知,从这里我们只知道在这场比赛里面,很多人都是公牛、韦德的球迷,大家肯定都希望公牛赢,这里我们很难判断大家的情感。但是另一个关键词:怎么 ,在评论中出现这么多怎么怎么,表示对比赛进行的疑惑。

  • 怎么某个球员发挥那么差?
  • 怎么某个球队在落后

上面说了大家都喜欢公牛胜,通过这个怎么关键词是不是能判断:目前公牛处于下风。这个目前无法精确判断,我们接着往下看。

9:51~11:12这个时间段,人数在逐渐的减少,并且与比赛相关的评论越来越少。甚至讨论起敬业福来了(心疼支付宝三分钟,每次好好搞个活动都会被拉到腾讯的平台来),而于比赛相关的评论比例十分之小,到此判断比赛没什么悬念了。某一方领先比分很大,比赛已花。

 

继续看下一时间段,11:12 ~ 11:18,这六分钟发生了什么?导致评论数量猛增,因为某各球员受伤了?因为某个球队被压了三节多,最后突然最后有希望了?

 

我们看看刚刚最上面的关键词:假球、翻盘、剧本

很有意思,如果这段关键词联系起来就是:在比赛最后时刻,一个一直落后的球队突然有希望翻盘,但是很明显没有翻盘成功,大家纷纷吐槽在打假球。最后的时刻出现了翻盘的希望,大家都是很热爱这种刺激感的,所以人数增多了,那么现在可能的情况如下:

  • 公牛全场领先,到最后差点被老鹰翻盘,大家吐槽老鹰打假球故意输给公牛
  • 老鹰全场领先,到最后差点被公牛翻盘,大家吐槽公牛打假球故意输给老鹰

显然,整场比赛可以发现大部分人是公牛的球迷,如果最后公牛胜,评论区一定欢呼雀跃,而不会去讨论什么假球,结合上一处论证:公牛输。

 

这是最后的流程图,可以结合比赛看一下:看比赛_体育直播_腾讯体育

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTML代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>NBA介绍</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <header> <h1>NBA介绍</h1> </header> <nav> <ul> <li><a href="#history">历史</a></li> <li><a href="#teams">球队</a></li> <li><a href="#players">球员</a></li> <li><a href="#championships">总冠军</a></li> </ul> </nav> <main> <h2 id="history">历史</h2> <p>NBA(National Basketball Association,全称:美国职业篮球联赛),是由北美30支队伍组成的职业篮球联赛,始创于1946年。</p> <h2 id="teams">球队</h2> <ul> <li>东部联盟</li> <ul> <li>波士顿凯尔特人</li> <li>布鲁克林篮网</li> <li>纽约尼克斯</li> <li>费城76人</li> <li>多伦多猛龙</li> </ul> <li>西部联盟</li> <ul> <li>洛杉矶湖人</li> <li>洛杉矶快船</li> <li>金州勇士</li> <li>休斯顿火箭</li> <li>达拉斯小牛</li> </ul> </ul> <h2 id="players">球员</h2> <table> <tr> <th>姓名</th> <th>球队</th> <th>位置</th> <th>得分</th> <th>篮板</th> <th>助攻</th> </tr> <tr> <td>勒布朗·詹姆斯</td> <td>洛杉矶湖人</td> <td>前锋</td> <td>27.0</td> <td>8.0</td> <td>8.0</td> </tr> <tr> <td>凯文·杜兰特</td> <td>布鲁克林篮网</td> <td>前锋</td> <td>28.0</td> <td>7.5</td> <td>5.0</td> </tr> </table> <h2 id="championships">总冠军</h2> <ul> <li>波士顿凯尔特人 - 17次</li> <li>洛杉矶湖人 - 16次</li> <li>芝加哥公牛 - 6次</li> <li>圣安东尼奥马刺 - 5次</li> <li>迈阿密热火 - 3次</li> </ul> </main> <footer> <p>© 2021 NBA介绍</p> </footer> </body> </html> CSS代码: body { margin: 0; padding: 0; font-family: Arial, sans-serif; } header { background-color: #f2f2f2; padding: 20px; } nav { background-color: #333; color: #fff; padding: 10px; } nav ul { margin: 0; padding: 0; list-style: none; display: flex; justify-content: space-between; } nav li { margin: 0 10px; } nav a { color: #fff; text-decoration: none; } main { margin: 20px; } h2 { font-size: 24px; margin-top: 40px; } p { font-size: 18px; line-height: 1.5; } ul, li { font-size: 18px; line-height: 1.5; } table { border-collapse: collapse; margin-top: 40px; } th, td { border: 1px solid #ddd; padding: 10px; } th { background-color: #f2f2f2; } footer { background-color: #333; color: #fff; text-align: center; padding: 20px; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值