別人用B站看彈幕,我用B站搞python

網(wǎng)上沖浪”“886”“GG”“沙發(fā)”……如果你用過這些立叛,那你可能是7080后;

“杯具”“神馬”“浮云”“偷菜”……如果你用過這些贡茅,你可能是8090后秘蛇;

“吃瓜群眾”“一億小目標”“藍瘦,香菇”“主要看氣質(zhì)”……如果你用過這些顶考,你可能是9000后赁还;

“awsl”“逮蝦戶”“律師函警告”“挖藕”……如果你了解這些,你可能……

是混b站的吧驹沿!

大家好艘策,我是大鵬,一位勉強通過b站會員考試的普通會員渊季。

眾所周知,b站彈幕是流行用語爆發(fā)的天堂,如果有一天你發(fā)現(xiàn)公司群里95免都、00后說話都聽不懂了食侮,來b站看看彈幕是很好的補習方式『仙埃可問題是青扔,這么多視頻這么多彈幕該從何看起呢?

數(shù)據(jù)分析師要有數(shù)據(jù)分析師的亞子,今天我就教大家用Python零基礎(chǔ)來爬一爬這個小破站的彈幕微猖,快速學習一些流行用語(完整python教程+代碼會在文末放出)谈息。

1.彈幕哪里找?

平常我們在看視頻時凛剥,彈幕是出現(xiàn)在視頻上的黎茎。實際上在網(wǎng)頁中,彈幕是被隱藏在源代碼中当悔,以XML的數(shù)據(jù)格式進行加載的:

XML和JSON傅瞻、YAML一樣是一種通用的標記信息表達方式,可以簡單的理解為一種記錄數(shù)據(jù)的格式盲憎。XML和描述網(wǎng)頁的語言HTML非常像嗅骄,所以你會在截圖中看到<d></d>這樣的標簽。了解更多可以查看教程:https://www.runoob.com/xml/xml-intro.html

那么上圖這個彈幕文件的url是什么呢饼疙?

https://comment.bilibili.com/92542241.xml

它以一個固定的url地址+視頻的cid+.xml組成溺森。只要找到你想要的視頻cid,替換這個url就可以爬取所有彈幕了(b站大部分網(wǎng)頁給出的字幕限制是1000條)窑眯。

一個視頻的cid在哪里呢屏积?右鍵網(wǎng)頁,打開網(wǎng)頁源代碼磅甩,搜索cid”就能找到:

cid在網(wǎng)頁源碼中是一個很常見的詞組炊林,而我們要尋找的正確的cid都會寫成"cid":xxxxxxxx的形式。為了縮小搜索范圍卷要,在后方加上一個引號會更快搜索到渣聚。

有了正確的cid,拼好url僧叉,我們就來寫爬蟲吧奕枝!

2.爬蟲庫到底是什么?

基本所有初學Python爬蟲的人都會接觸到requests瓶堕、BeautifulSoup這兩個工具庫隘道,這是兩個常用基礎(chǔ)庫。requests用于向網(wǎng)站url發(fā)起請求郎笆,以獲取網(wǎng)頁代碼谭梗;BeautifulSoup用于將HTML/XML內(nèi)容解析,并提取里面的重要信息题画。

這兩個庫模擬了人訪問網(wǎng)頁默辨,讀懂網(wǎng)頁并復制粘貼出對應信息的過程,能夠批量地苍息、快速地完成數(shù)據(jù)爬取缩幸。



如果你在學習Python的過程當中有遇見任何問題壹置,可以加入我的python交流學企鵝群:【611+530+101】,多多交流問題表谊,互幫互助钞护,群里有不錯的學習教程和開發(fā)工具。學習python有任何問題(學習方法爆办,學習效率难咕,如何就業(yè)),可以隨時來咨詢我



3.開始爬取

觀察網(wǎng)頁距辆,可以發(fā)現(xiàn)余佃,所有的彈幕都放在了<d>標簽下,那么我們需要構(gòu)建一個程序獲取所有的<d>標簽:

第一步跨算,導入requests庫爆土,使用request.get方法訪問彈幕url:

import requests

#獲取頁面數(shù)據(jù)html

url=r'https://comment.bilibili.com/78830153.xml'

r=requests.get(url)#訪問url

r.encoding='utf8'

第二步,導入BeautifulSoup庫诸蚕,使用lxml解析器解析頁面:

from bs4 import BeautifulSoup

#解析頁面

soup=BeautifulSoup(r.text,'lxml')#lxml是常用的解析器步势,需要提前使用pip工具安裝lxml庫

d=soup.find_all('d')#找到所有頁面的d標簽

#print(d)

這樣操作后,所有藏在d標簽里的彈幕內(nèi)容就被python抓取到了 :

解析完成后背犯,接下來第三步就是運用Python基礎(chǔ)函數(shù)中的for函數(shù)坏瘩,將單條數(shù)據(jù)裝進字典,再將所有字典裝進一個列表:

#解析彈幕,將彈幕漠魏、網(wǎng)址倔矾、時間整理為字典,最后加和成列表蛉幸,共1000條數(shù)據(jù)

dlst=[]

n=0

for i in d:

n+=1

danmuku={}#將單條數(shù)據(jù)裝進字典

danmuku['彈幕']=i.text

danmuku['網(wǎng)址']=url

danmuku['時間']=datetime.date.today()#需要先導入datetime庫

dlst.append(danmuku)#將所有字典裝進一個列表

print('獲取了%i條數(shù)據(jù)' %n)

#print(dlst)

此時整理好的彈幕數(shù)據(jù)如下破讨,是不是已經(jīng)有點常見的excel數(shù)據(jù)的意思了?

那我們就把它變得更加像excel數(shù)據(jù)吧奕纫!第四步導入大名鼎鼎的pandas庫,一行代碼將列表數(shù)據(jù)轉(zhuǎn)為DataFrame數(shù)據(jù)烫沙,并保存到本地匹层,爬蟲的大體框架就完成了:

import pandas as pd

#將列表變?yōu)镈ataFrame,使用pandas進行分析

df=pd.DataFrame(dlst)

df.to_excel('b站彈幕數(shù)據(jù).xlsx')#講爬下來的數(shù)據(jù)放在excel里

3.多個彈幕網(wǎng)址怎么爬?

沒錯锌蓄,這個爬蟲還存在很多可以優(yōu)化的地方升筏,比如是不是可以爬取多個彈幕?是不是可以封裝起來瘸爽,輸入cid就出來結(jié)果呢您访?

當然可以。只要我們熟練掌握def定義函數(shù)功能剪决,就可以把上述的爬蟲功能寫成一個爬取函數(shù):

一鍵爬取一時爽灵汪,一直一鍵一直爽檀训,完整代碼就在文末,大家自己爽吧享言。

4.彈幕可以做什么分析?

鬼畜區(qū)出來的流行詞永遠是最有腦洞的峻凫,所以本文以最近很鬼畜的“巴啦啦小魔仙口胡”視頻彈幕為例,教授流行用語:

首先看看览露,發(fā)彈幕的小伙伴有多少是話癆呢荧琼?

雖然大部分的彈幕都在10個字內(nèi)解決,但平均來看大家會使用9.8個左右的字表達吐槽差牛,最長的一位同學彈幕字數(shù)長達100字命锄。10個字在平時說話可能就是一個短句,但是放在彈幕上已經(jīng)是很長的一串了偏化,看來刷彈的話癆還是很多的累舷。

那么這些話癆都在說什么呢?

字數(shù)最多的前二十位同學就是在笑夹孔,沉浸式的大笑被盈,果然人類的本質(zhì)就是復讀機:

既然說到復讀機,除了哈哈哈以外搭伤,還有哪些詞是經(jīng)常被復讀的呢只怎?

“合影”“亞子”“雨女無瓜”“名場面”……不得不說這個小破站的網(wǎng)友腦洞清奇。有了這個怜俐,媽媽再也不愁我跟不上00后的步伐了身堡。

我知道,你一定想問拍鲤,零基礎(chǔ)真的能快速學會Python技巧贴谎,做一些好玩的事情嗎?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末季稳,一起剝皮案震驚了整個濱河市擅这,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌景鼠,老刑警劉巖仲翎,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铛漓,居然都是意外死亡溯香,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門浓恶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玫坛,“玉大人,你說我怎么就攤上這事包晰∈疲” “怎么了炕吸?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肠骆。 經(jīng)常有香客問我算途,道長,這世上最難降的妖魔是什么蚀腿? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任嘴瓤,我火速辦了婚禮,結(jié)果婚禮上莉钙,老公的妹妹穿的比我還像新娘廓脆。我一直安慰自己,他們只是感情好磁玉,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布停忿。 她就那樣靜靜地躺著,像睡著了一般蚊伞。 火紅的嫁衣襯著肌膚如雪席赂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天时迫,我揣著相機與錄音颅停,去河邊找鬼。 笑死掠拳,一個胖子當著我的面吹牛癞揉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溺欧,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喊熟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐刁?” 一聲冷哼從身側(cè)響起芥牌,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎龙填,沒想到半個月后胳泉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡岩遗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凤瘦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宿礁。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蔬芥,靈堂內(nèi)的尸體忽然破棺而出梆靖,到底是詐尸還是另有隱情控汉,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布返吻,位于F島的核電站姑子,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏测僵。R本人自食惡果不足惜街佑,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捍靠。 院中可真熱鬧沐旨,春花似錦、人聲如沸榨婆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽良风。三九已至谊迄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烟央,已是汗流浹背统诺。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吊档,地道東北人篙议。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像怠硼,于是被迫代替她去往敵國和親鬼贱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容