<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站老司機

          共 3939字,需瀏覽 8分鐘

           ·

          2020-08-07 02:43




          本文含?3420?,27?圖表截屏

          建議閱讀?10分鐘


          前言

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

          彈幕分析

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

          首先是戶外區(qū)up主,我們選擇了華農(nóng)兄弟,雖然往期類似竹鼠中暑母雞發(fā)燒、打架內(nèi)傷等視頻彈幕很多,但最近的彈幕大多為考古等重復(fù)數(shù)據(jù),因此為了追蹤近期彈幕熱點,我們選擇近期播放量較高的視頻來進行分析(2020-07-07)
          因b站限制每天只能獲取1500條,因此本文一共爬取了自7.7日發(fā)布以來共24天36000條彈幕,并制作成詞云圖如下(點擊圖片可以直達該視頻播放)
          可以看到,彈幕刷的最多的就是?兄弟?,畢竟兄弟家的就是我家的,其次就是村霸、億點點、死因?等專屬與華農(nóng)兄弟的梗,還有類似于人言否、寸草不生、兄弟敢怒不敢言?等關(guān)鍵詞也是彈幕愛刷的,學(xué)會了嗎

          知識區(qū)-羅翔

          接下來是最近在b站知識區(qū)很火的羅翔老師,直接搜索羅翔出來的大多是正兒八經(jīng)刑法課,要想正確混入彈幕區(qū)還需搜索張三
          從標(biāo)題就能看到每一個視頻都不簡單,我們找到播放量較高的一個視頻?
          該視頻講述了張三的多種死法,截止7.30日共獲得700萬+播放,實時2萬+彈幕,我們爬取近兩個月每天1500條共60000條彈幕并制作成詞云圖如下(點擊圖片可以直達該視頻播放)
          可以看到,除了滿屏的哈哈哈,哈哈哈哈之外,開門見三法外狂徒張三也是彈幕愛發(fā)的,其次還有類似于好慘啊張三太慘、淚目等看上去心疼張三的彈幕。當(dāng)然眾所周知十個淚目九個笑,還有一個在狂笑。同時我們可以發(fā)現(xiàn)在華農(nóng)兄弟彈幕區(qū)愛刷的死因來到羅老師這里成了死法,只不過一個是竹鼠的一百種死因一個是張三的一千種死法
          另外和華農(nóng)兄弟的全程村霸不同,由于羅老師的相關(guān)視頻都是有具體的故事情節(jié),所以視頻不同時間段的彈幕熱詞并不一樣,我們來看一下?
          從視頻開始的開門見三,到隨著案件發(fā)展張三的慘死哈哈哈,最后是滿屏的淚目,你get到了嗎

          生活區(qū)-手工耿

          接下來是生活區(qū),我們選擇手工達人手工耿近期的熱門視頻
          自制夫妻分分合合床,一聽就知道是廢品了,該視頻自7.17發(fā)布以來共獲得460萬+播放,1.3萬+條實時彈幕,用Python爬取21000條彈幕并制作詞云圖(點擊圖片可以直達該視頻播放)
          除了滿屏的哈哈哈,手工耿也有屬于自己的彈幕熱詞,比如刑部尚書、害怕申請專利、量產(chǎn)有用,取關(guān)了、這個項目我王多魚投了等,當(dāng)然由于這期視頻為夫妻分分合合床,所以類似老婆、嫂子等詞語也被瘋狂刷屏。

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

          現(xiàn)在我們來到b站美食區(qū)-郭杰瑞的彈幕區(qū),雖然現(xiàn)在更像是戰(zhàn)地記者的郭錐近期也回歸了老本行,7.21日更新了美食相關(guān)視頻,并且也獲得了七月視頻的最高播放
          我們爬取該視頻的15000條彈幕進行分析并制作詞云圖如下(點擊圖片可以直達該視頻播放)
          除了滿屏的哈哈哈之外,這個不辣?是刷的最多的彈幕,你也可以在郭杰瑞的任何視頻中看到刷這個梗的彈幕。當(dāng)然類似于血虧、漢堡、黃金等就是和該視頻相關(guān)的熱詞了其次由于該視頻是在紐約錄制,所以美麗的風(fēng)景線no justice no peace也是彈幕一直在刷的

          鬼畜區(qū)

          最后,我們來到B站的鬼畜區(qū),看看最火的鬼畜區(qū)彈幕都愛刷什么,我們打開b站鬼畜區(qū)的7月排行榜
          可以看到,7月最熱的5個鬼畜視頻中,兩個是基于讓子彈飛制作,兩個是基于羅翔制作,為了采集更多的彈幕數(shù)據(jù),本文選擇月初發(fā)布的基于羅翔x愛情公寓的鬼畜視頻【張三史上最慘4分鐘】,共爬取到近4萬條彈幕數(shù)據(jù)并制作詞云圖如下(點擊圖片可以直達該視頻播放)
          來到鬼畜區(qū)肯定就少不了好活當(dāng)賞下次一定,當(dāng)然有張三的地方就有法外狂徒,有愛情公寓的地方就有腎寶其次一個優(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ù)據(jù)包,即使你打開彈幕列表,依舊只能找到一個被類似彈幕但是被加密的數(shù)據(jù)包,因此需要按照下圖指示點擊彈幕列表—>查看歷史彈幕,并選擇任意一天的歷史彈幕,此時就能找到存儲該日期彈幕的ajax數(shù)據(jù)包,所有的彈幕都藏在一個i標(biāo)簽中
          現(xiàn)在查看請求的相關(guān)信息
          可以發(fā)現(xiàn)RequestURL關(guān)鍵就是oiddate兩個參數(shù),date是日期沒什么好說的,oid雖然不知道是什么,但是一堆數(shù)據(jù)包中很多都是帶有一個oid
          所以找到一個視頻的oid并不困難,接下來要做的就是根據(jù)這兩個參數(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來添加進度條
          以上就是有關(guān)Python爬取彈幕的技術(shù)解析,而詞云圖的制作我們在之前的文章中有過詳細(xì)的講解,此處就不再贅述,如果你對代碼感興趣的話可以在后臺回復(fù)0802獲取。最后如果你喜歡本文的話,不要忘記點擊文末三連,是這次而不是下次一定!
          推薦閱讀
          一站配齊所有國內(nèi)鏡像,庫安裝提升 10 倍
          Python編輯公式竟可以如此簡單

          關(guān)注「Python 知識大全」,做全棧開發(fā)工程師
          歲月有你 惜惜相處

          回復(fù)【資料】獲取高質(zhì)量學(xué)習(xí)資料

          【在看】和【贊】我都需要

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  日韩欧美国产精品 | 欧美成年人网站 | 亚洲啪AV永久无码精品放毛片 | 古典武侠亚洲无码 | 国产豆花视频在线播放 |