在知乎上看到一道題目: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