<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          爬取B站20萬+條彈幕,我學(xué)會了如何成為B站老司機(jī)

          共 4102字,需瀏覽 9分鐘

           ·

          2020-08-19 10:17

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          江雨霏霏江草齊,六朝如夢鳥空啼。

          前言

          B站(嗶哩嗶哩)是國內(nèi)知名的視頻彈幕網(wǎng)站,也是中國最大的年輕人聚集地之一,想要知道B站彈幕愛刷什么梗不同分區(qū)UP主彈幕各有什么特點(diǎn)?如何快速成為B站彈幕老司機(jī)?本文就通過Python爬取B站不同UP主近20萬+彈幕數(shù)據(jù)進(jìn)行分析,全文共分為兩個(gè)部分,第一部分為不同分區(qū)up主的彈幕分析,第二部分為Python爬取B站彈幕技術(shù)分析。

          彈幕分析

          戶外區(qū)-華農(nóng)兄弟

          首先是戶外區(qū)up主,我們選擇了華農(nóng)兄弟,雖然往期類似竹鼠中暑母雞發(fā)燒、打架內(nèi)傷等視頻彈幕很多,但最近的彈幕大多為考古等重復(fù)數(shù)據(jù),因此為了追蹤近期彈幕熱點(diǎn),我們選擇近期播放量較高的視頻來進(jìn)行分析(2020-07-07)

          因b站限制每天只能獲取1500條,因此本文一共爬取了自7.7日發(fā)布以來共24天36000條彈幕,并制作成詞云圖如下(點(diǎn)擊圖片可以直達(dá)該視頻播放)

          可以看到,彈幕刷的最多的就是?兄弟?,畢竟兄弟家的就是我家的,其次就是村霸、億點(diǎn)點(diǎn)、死因?等專屬與華農(nóng)兄弟的梗,還有類似于人言否寸草不生、兄弟敢怒不敢言?等關(guān)鍵詞也是彈幕愛刷的,學(xué)會了嗎

          知識區(qū)-羅翔

          接下來是最近在b站知識區(qū)很火的羅翔老師,直接搜索羅翔出來的大多是正兒八經(jīng)刑法課,要想正確混入彈幕區(qū)還需搜索張三

          從標(biāo)題就能看到每一個(gè)視頻都不簡單,我們找到播放量較高的一個(gè)視頻?

          該視頻講述了張三的多種死法,截止7.30日共獲得700萬+播放,實(shí)時(shí)2萬+彈幕,我們爬取近兩個(gè)月每天1500條共60000條彈幕并制作成詞云圖如下(點(diǎn)擊圖片可以直達(dá)該視頻播放)

          可以看到,除了滿屏的哈哈哈,哈哈哈哈之外,開門見三、法外狂徒張三也是彈幕愛發(fā)的,其次還有類似于好慘啊、張三太慘淚目等看上去心疼張三的彈幕。當(dāng)然眾所周知十個(gè)淚目九個(gè)笑,還有一個(gè)在狂笑。同時(shí)我們可以發(fā)現(xiàn)在華農(nóng)兄弟彈幕區(qū)愛刷的死因來到羅老師這里成了死法,只不過一個(gè)是竹鼠的一百種死因一個(gè)是張三的一千種死法

          另外和華農(nóng)兄弟的全程村霸不同,由于羅老師的相關(guān)視頻都是有具體的故事情節(jié),所以視頻不同時(shí)間段的彈幕熱詞并不一樣,我們來看一下?

          從視頻開始的開門見三,到隨著案件發(fā)展張三的慘死哈哈哈,最后是滿屏的淚目,你get到了嗎

          生活區(qū)-手工耿

          接下來是生活區(qū),我們選擇手工達(dá)人手工耿近期的熱門視頻

          自制夫妻分分合合床,一聽就知道是廢品了,該視頻自7.17發(fā)布以來共獲得460萬+播放,1.3萬+條實(shí)時(shí)彈幕,用Python爬取21000條彈幕并制作詞云圖(點(diǎn)擊圖片可以直達(dá)該視頻播放)

          除了滿屏的哈哈哈,手工耿也有屬于自己的彈幕熱詞,比如刑部尚書、害怕、申請專利量產(chǎn)、有用,取關(guān)了、這個(gè)項(xiàng)目我王多魚投了等,當(dāng)然由于這期視頻為夫妻分分合合床,所以類似老婆、嫂子等詞語也被瘋狂刷屏。

          美食區(qū)-我是郭杰瑞

          現(xiàn)在我們來到b站美食區(qū)-郭杰瑞的彈幕區(qū),雖然現(xiàn)在更像是戰(zhàn)地記者的郭錐近期也回歸了老本行,7.21日更新了美食相關(guān)視頻,并且也獲得了七月視頻的最高播放

          我們爬取該視頻的15000條彈幕進(jìn)行分析并制作詞云圖如下(點(diǎn)擊圖片可以直達(dá)該視頻播放)

          除了滿屏的哈哈哈之外,這個(gè)不辣?是刷的最多的彈幕,你也可以在郭杰瑞的任何視頻中看到刷這個(gè)梗的彈幕。當(dāng)然類似于血虧、漢堡、黃金等就是和該視頻相關(guān)的熱詞了其次由于該視頻是在紐約錄制,所以美麗的風(fēng)景線、no justice no peace也是彈幕一直在刷的

          鬼畜區(qū)

          最后,我們來到B站的鬼畜區(qū),看看最火的鬼畜區(qū)彈幕都愛刷什么,我們打開b站鬼畜區(qū)的7月排行榜

          可以看到,7月最熱的5個(gè)鬼畜視頻中,兩個(gè)是基于讓子彈飛制作,兩個(gè)是基于羅翔制作,為了采集更多的彈幕數(shù)據(jù),本文選擇月初發(fā)布的基于羅翔x愛情公寓的鬼畜視頻【張三史上最慘4分鐘】,共爬取到近4萬條彈幕數(shù)據(jù)并制作詞云圖如下(點(diǎn)擊圖片可以直達(dá)該視頻播放)

          來到鬼畜區(qū)肯定就少不了好活當(dāng)賞下次一定,當(dāng)然有張三的地方就有法外狂徒,有愛情公寓的地方就有腎寶。其次一個(gè)優(yōu)秀的鬼畜視頻開頭一定會有人歡迎回來每日億遍,持續(xù)的押韻、skr、上頭也是少不了~

          技術(shù)解析

          本節(jié)介紹如何使用Python爬取B站指定視頻的全部彈幕,如果你嘗試去搜索Python爬取B站彈幕等關(guān)鍵詞,會發(fā)現(xiàn)大多數(shù)教程是通過請求存儲彈幕的xml文件來獲取數(shù)據(jù),但是目前已經(jīng)失效,除此之外GitHub上還有一些b站的API,不過為了更好的采集自己想要的數(shù)據(jù),本文選擇自行爬取,思路依舊是抓包—>requests請求數(shù)據(jù),我們已華農(nóng)兄弟的視頻為例,首先打開需要采集彈幕的視頻,然后F12—>Network,

          此時(shí)無論怎樣查找,都找不到存儲彈幕的數(shù)據(jù)包,即使你打開彈幕列表,依舊只能找到一個(gè)被類似彈幕但是被加密的數(shù)據(jù)包,因此需要按照下圖指示點(diǎn)擊彈幕列表—>查看歷史彈幕,并選擇任意一天的歷史彈幕,此時(shí)就能找到存儲該日期彈幕的ajax數(shù)據(jù)包,所有的彈幕都藏在一個(gè)i標(biāo)簽中

          現(xiàn)在查看請求的相關(guān)信息

          可以發(fā)現(xiàn)RequestURL關(guān)鍵就是oiddate兩個(gè)參數(shù),date是日期沒什么好說的,oid雖然不知道是什么,但是一堆數(shù)據(jù)包中很多都是帶有一個(gè)oid

          所以找到一個(gè)視頻的oid并不困難,接下來要做的就是根據(jù)這兩個(gè)參數(shù)構(gòu)造不同日期的彈幕URL

          def?get_url(oid,start,end):
          ????'''
          ????獲取指定日期的彈幕
          ??? oid:視頻oid
          ??? start,end:起止日期
          ????'''

          ????url_list?=?[]
          ????
          ????date_list?=?[i?for?i?in?pd.date_range(start,end).strftime('%Y-%m-%d')]
          ????
          ????for?date?in?date_list:
          ????????
          ????????url?=?f"https://api.bilibili.com/x/v2/dm/history?type=1&oid={oid}&date={date}"
          ????????url_list.append(url)
          ????????
          ????return?url_list

          這里注意的是我們構(gòu)造日期使用了pandas中的date_range函數(shù),非常好用,感興趣的讀者可以自行搜索了解,現(xiàn)在我們獲得了指定日期的彈幕數(shù)據(jù)URL,接下來要做的就是使用requests請求網(wǎng)站并使用bs4解析數(shù)據(jù),最后將數(shù)據(jù)寫入TXT即可

          def?get_danmu(url_list,name):
          ????'''
          ????下載彈幕存至本地txt
          ????'''

          ????headers?=?{"cookie":?"修改為你的cookie",
          ????"origin":?"https://www.bilibili.com",
          ????"referer":?"https://www.bilibili.com/video/BV1gW411b735",
          ????"sec-fetch-dest":?"empty",
          ????"sec-fetch-mode":?"cors",
          ????"sec-fetch-site":?"same-site",
          ????"user-agent":?"Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_15_2)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/84.0.4147.105?Safari/537.36"}
          ????
          ????file?=?open(f"{name}.txt",'w')
          ????
          ????for?i?in?trange(len(url_list)):
          ????????url?=?url_list[i]
          ????????res?=?requests.get(url,headers?=?headers)
          ????????res.encoding?=?'utf-8'
          ????????soup?=?BeautifulSoup(res.text)
          ????????data?=?soup.find_all("d")
          ????????danmu?=?[data[i].text?for?i?in?range(len(data))]
          ????????for?items?in?danmu:
          ????????????file.write(items)
          ????????????file.write("\n")
          ????????time.sleep(2)
          ???????
          ????file.close()

          上面的代碼并不復(fù)雜,使用自己的cookie等參數(shù)構(gòu)造請求頭循環(huán)請求數(shù)據(jù)即可,唯一要注意的就是返回的結(jié)果編碼為ISO-8859-1,需要先使用res.encoding?=?'utf-8'修改編碼,否則就會亂碼,當(dāng)然我這里還是用了tqdm來添加進(jìn)度條

          以上就是有關(guān)Python爬取彈幕的技術(shù)解析,而詞云圖的制作我們在之前的文章中有過詳細(xì)的講解,此處就不再贅述,如果你對代碼感興趣的話可以在后臺回復(fù)0802獲取。最后如果你喜歡本文的話,不要忘記點(diǎn)擊文末三連,是這次而不是下次一定!


          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群

          萬水千山總是情,點(diǎn)個(gè)【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜撸综合 | 久草资源 | 一区二区三区四区视频 | 精品人妻无码一区二区三区苍井空 | 日日干,夜夜操 |