人人射人人插 I 91成人综合 I 熟女视频一区二区在线观看 I 91 在线观看 I 欧美成人乱码一二三四区免费 I av在线网页 I 日韩aⅴ视频 I 女人高潮抽搐潮喷视频开腿 I 大陆日韩欧美 I 国产麻豆精品福利在线观看 I 国产在线精品一区二区在线观看 I 青草网在线观看 I 国产精品夜夜夜 I 色婷婷六月 I 亚洲第一天堂在线观看 I 国产午夜激无码av毛片不卡 I 精品乱码一卡二卡四卡 I 永久免费看片在线 I av影片网站 I xfplay噜噜av I 91精品国产91久久久久福利 I 免费能看的av I 国产成人美女视频 I 久久国产精品99精国产 I 久久久久国产成人免费精品免费 I 国产精品va I 久久国产精品成人影院 I 国产女人爽到高潮久久久4444 I 狠狠亚洲 I 野外做受三级视频 I 久久婷婷国产综合精品 I 色婷婷综合视频在线观看 I 成人瑟瑟视频 I 国产视频久久网 I 亚洲无人区一区

您現在所在的位置:首頁 >關于奇酷 > 行業動態 > 實戰丨你永遠不知道多少人在嗶哩嗶哩彈幕,但Python知道!

實戰丨你永遠不知道多少人在嗶哩嗶哩彈幕,但Python知道!

來源:奇酷教育 發表于:

Python爬蟲爬取Bilibili彈幕實戰。

  聚合了海量先鋒年輕人的B站,月均活躍用戶達到1.1億。
 
  提到B站,你會想到什么?
 
  二次元?鬼畜?看番?diss?還是——彈幕?
 
  曾經錯位時空不同的人,在同一個視頻下用彈幕進行了交流。
 
  而發這條彈幕的人,可能甚至是五六年前發的。
 
  你永遠不知道年輕人有多少梗,不知道有多少人在彈幕,但是——
 
  Python知道。
 
  Python爬蟲爬取Bilibili彈幕
 
  這是Python爬蟲爬取Bilibili彈幕實戰。
 
  有人說,B站因彈幕的體驗感而一騎絕塵。
 
  飛逝的彈幕仿佛能溝通一切。
 
  那么,B站上一個視頻的彈幕最多會有多少?
 
  2000條?還是更多?
 
  這么多數據,B站肯定是不會直接把彈幕和這個視頻綁在一起的。
 
  也就是說,有一個視頻地址為https://www.bilibili.com/video/av67946325,你如果直接去requests.get這個地址,里面是不會有彈幕的,因為B站的彈幕是先加載當前視頻的界面,然后再異步填充彈幕的。
 
  接下來我們可以打開火狐瀏覽器(平常可以火狐谷歌控制臺都使用,因為谷歌里面因為插件被攔截下來的包在火狐可以抓到,同理谷歌也是)的控制臺來觀察網絡請求了。
 
  經過仔細排查之后,找到了一個請求xml的,它后面跟了一個oid,查看它的響應內容之后可以發現它就是彈幕文件。
  它的響應時間98毫秒,遠超其它幾個響應,所以說如果把彈幕直接放在視頻頁面,用戶體驗一定會很差。
  找到彈幕了,爬取它很容易,但是我們想要是爬取固定av號視頻的彈幕,而不是說隨意去找一個oid來爬取彈幕,這樣我們都不知道爬下來的彈幕是哪個視頻的。
 
  接下來我們就可以復制oid的117784982值,去視頻頁面搜索看看了,通過視頻來獲得它的oid再來爬xml彈幕就很方便了。
 
  這次用了谷歌瀏覽器,在里面通過搜索oid果然搜索到相關的數據了。
  其中cid是彈幕對應的id,aid對應視頻av號。
 
  先把這個頁面爬取下來。
 
 
  正則表達式最簡單的使用方式其實就是直接match。拿到了內容我們就要從中解析彈幕id了,對于這種規則紊亂的網頁,我們就不能用上一篇中Bs4解析了,而是使用正則表達式。
 
 
  觀察這里的內容,我們大致的匹配規則就有了。
 
  cid={目標}&aid=av號
 
  117784982就是我們的目標。
 
  先根據av號拿到視頻頁面,然后解析視頻頁面拿到oid,最后用oid去請求xml彈幕文件。
 
  這樣我們就完成B站彈幕爬蟲了。
 
  Python,好絕一鬼才!