在知乎上看到一道题目:bilibili 上有哪些值得反复观看的视频?于是动了歪脑袋,决定对bilibili站的视频进行一次遍历。因为上班比较忙,断断续续的做着爬虫,幸运的是我还是做好了,当然这有很大一部分原因是女票对bilibili站视频的榜单很感兴趣。
数据出来了之后开开心心的列了几个榜单
1、bilibili站播放量最高的前100个视频
2、bilibili站评论量最高的前100个视频
3、bilibili站分享量最高的前100个视频
4、bilibili站收藏量最高的前100个视频
5、bilibili站硬币量最高的前100个视频
6、bilibili站弹幕量最高的前100个视频
其实列榜单是一件很容易的事情,无非就是sql语句(信息存储我用的Mysql),以下这个sql就是简单的提取了播放量前一百名的视频信息,其它项同理。
select * from V_score order by v_view desc limit 100;
下面就让我们从头开始说起。
首先按照以往的套路,我们去找找视频的api,F12一下你就知道。
http://api.bilibili.com/archive_stat/stat?aid=
aid后面的数字就是视频的id,通过观察也很好理解他的视频id是从0开始自增长,相当于一个主键,于是我们只要从0开始往后遍历并且取出我们需要的信息即可,简单代码自行实现。
这个json数据相信你们一看就很明白。
然后你可以做一个多线程,要用的库:多线程相关。你可以写个分布式。
class MyThread(Thread): """docstring for MyThread""" def __init__(self, db): super(MyThread, self).__init__() self.db = db def run(self): try: global counter, mutex while counter < 7000000: if mutex.acquire(): counter += 1 readEver(self.db,counter) mutex.release() except: pass
然后写入数据库,要用到的库:MySQLdb
def Insert(db,v_id,v_view,v_favorite,v_share,v_reply, v_coin,v_danmaku): """向数据库增加数据,添加失败回滚,指定,列""" cursor = db.cursor() sql = "INSERT INTO V_score(v_id,v_view,v_favorite, v_share,v_reply,v_coin,v_danmaku) VALUES(" + v_id+', '+v_view+','+v_favorite+','+v_share+','+v_reply+', '+v_coin+','+v_danmaku+')' print v_id+','+v_view+','+v_favorite+', '+v_share+','+v_reply+','+v_coin+','+v_danmaku try: cursor.execute(sql) db.commit() except: print 'failed' db.rollback()
就这样,数据会陆陆续续的存到数据库里,经过一段很长时间,数据有了。这时候我们去看一下数据库,看一下总数据,看一下表结构。
接下来我做第一件事情就是开头说的那样,列了所有单项的榜单,本来以为事情到这里就结束了。但是突然看到了这个:https://github.com/airingursb/bilibili-user 对bilibili的用户进行了分析,于是我也来了兴致。
想做的第一件事情是就是看看播放量的分布,结果第一次我这么干了,我统计了每1000000之间的视频分布,结果是我太蠢了。
是我太天真了,赶紧把维度放到100000放小,结果仍然是
可喜可贺,至少我们已经能逐渐看到其他维度所标记的圆了,接下来我们把维度放到1w,万念俱焚我们还是放到1k吧。
最后我们对播放的量进行一个大体划分。
至此,不再往下做统计。可以很明显的看出,bilibili站的大部分的视频播放量都是在1k以下。看看你的视频在哪个圈圈里?播放量过1000w的视频有六个是:
16777215 【测试重要勿动】
13119867 【官方中文】Fate/Zero_完结动画
12448148 【4月】在下坂本有何贵干? 01【独家正版】
12091575 【高清日剧】Legal High/胜者即是正义(全11回+SP1)【人人】
11089492 【电音单曲】我是papi酱
10883765 【古筝】千本樱——你可见过如此凶残的练习曲
播放量在100w以上的都是一些什么视频?何不一起来看看。100w播放量以上视频共计2520条,我们取2520条记录的所有的的视频标题生成词云,如下图所显示(对一些已经被删除或者封禁的视频已经进行了删除)。
通过以下的词云图片发现:播放量超1000w的标题关键词并没有出现在100w以上词云中,因此做出推测播放量最高的视频都非连载视频,或者是连载视频但是只有那一集做的比较出彩,其他做的相对普通
用户最爱的视频(即喜欢数量最多的前1000的视频的标题的词云,我取了前80个关键词)
喜欢数量大于20w的分别是
414258 【古筝】千本樱——你可见过如此凶残的练习曲
294699 【综漫 ASMV】 弱者(完整版)/The Weak (Full ver.)_MAD·AMV_动画_bilibili_哔哩哔哩弹幕视频网
276602 【全明星Rap】黑喂狗!
274509 2016拜年祭 - 嗶哩嗶哩
272262 【灵魂rap】如何让孩子爱上♂学习?
247376 【みうめ・メイリア(GARNiDELiA)・仮面ライアー217】極楽浄土【第4弾!!!】
237712 【2016拜年祭单品】九九八十一【乐正绫 feat.洛天依】_VOCALOID·UTAU_音乐_bilibili_哔哩哔哩弹幕视频网
225638 【电音单曲】我是papi酱
225242 这大概是最好的日语入门教学了吧----五十音学习
同样与用户最爱的视频标题词云进行对比,同样发现较高的几个视频的标题所含关键词并没有包含在1k视频的关键词词云中。
用户最喜欢赞赏哪一类视频?(即获得硬币次数的前1000的视频的标题的词云,仍然是提取了前80个关键词)
收藏数量大于20w的视频分别是
747163 2016拜年祭 - 嗶哩嗶哩
579159 【敖厂长】打脸!魂斗罗水下八关存在
477442 【古筝】千本樱——你可见过如此凶残的练习曲
216539 【电音单曲】我是papi酱
什么样的视频用户最喜欢发弹幕?(即获得发弹幕数量最高的前1000的视频的标题的词云,提取了前200个关键词)
用户弹幕数量大于100w的视频分别是
1786762 2016拜年祭 - 嗶哩嗶哩
1636244 【7月】雏蜂序章 上
1616678 【散人】大型励志剧 娱乐圈小助理养成计划(已更新至重置P12 遇龙开播)
1372501 哔哩哔哩弹幕视频网
1348562 【4月】在下坂本有何贵干? 01【独家正版】
1283413 【更新6P】莫名其妙就跟着唱了
1093778 【官方中文】Fate/Zero_完结动画
1040490 【高级弹幕游戏】弹幕躲避
如果按照一定的规则选取出最热的视频。这里我以积分规则为:
总积分 = 播放量 + 收藏量*20 + 分享量*30 + 评论量*10 + 弹幕数量*10 + 硬币量*500
得到总积分超过5000w的视频排名如下:
413116213 2016拜年祭 - 嗶哩嗶哩
293558556 【敖厂长】打脸!魂斗罗水下八关存在
266826725 【古筝】千本樱——你可见过如此凶残的练习曲
128029442 【电音单曲】我是papi酱
103874369 【全明星Rap】黑喂狗!
96340003 【潇洒一辣】请把尊严还给中国医生
93445805 【丞相&司徒】大忠若奸
89073818 【敖厂长】抢滩登陆你玩过吗
83319479 【极乐净土】咬人猫/有咩酱/赤九玖❤155小分队o(*≧▽≦)ツ
78733416 【综漫 ASMV】 弱者(完整版)/The Weak (Full ver.)_MAD·AMV_动画_bilibili_哔哩哔哩弹幕视频网
76606103 【2016拜年祭单品】九九八十一【乐正绫 feat.洛天依】_VOCALOID·UTAU_音乐_bilibili_哔哩哔哩弹幕视频网
73974321 【筝鼓和鸣】权御天下 ——墨韵随步摇 ft. 司鼓君
73327696 【丞相&司徒】此物天下绝响
72829164 【灵魂rap】如何让孩子爱上♂学习?
67730297 【迷之RAP】老司机教你做人
67027737 主播真会玩鬼畜篇01:我是全英雄联盟最骚的骚猪!_鬼畜调教
66765413 【鬼畜大合作】因为,我们爱着鬼畜
64698638 【4月】在下坂本有何贵干? 01【独家正版】
61256809 【散人】大型励志剧 娱乐圈小助理养成计划(已更新至重置P12 遇龙开播)
58381715 [修复]王司徒VS诸葛亮——穿越时空的对决
55153662 【敖厂长】200期 达成!
53928472 【咬人猫】妖精的尾巴OP15❤MASAYUME CHASING o(*≧▽≦)ツ
53775520 【鬼畜全明星】双♂人♂舞
52831632 【西游合唱团】九九八十一
51726296 【暴走大事件第四季】27 铁柱身陷重金求子,探寻一夜二百万真相!
50879305 【去违和】周杰伦献唱核爆神曲aLIEz 与霍元甲的remix版本 aHUOz!
50636553 西游记之大圣归来
这些具有超高价值的视频组成的关键词词云会是怎样呢?
那么你看到了你熟悉的字眼了嘛?
◆ ◆ ◆ ◆ ◆
来源:
作者介绍:张洋铭,投资人中最懂动漫的程序员,负责PlugandPlay早期科技类项目投资,个人关注动漫智能助理。
微信公众号:张洋铭Ocean(ocean_anidata)
BP请投递至:ocean.zhang@plugandplaychina.com
原文链接:https://zhuanlan.zhihu.com/p/22541207
网友评论