用python爬取B站彈幕并繪制詞云

最近在B站發(fā)現(xiàn)一個彈琵琶的小姐姐震捣,真的是人美歌甜啊啊啊直秆,所以打算爬取她的視頻來分析彈幕同時制作詞云蔫劣。

查找相關信息之后發(fā)現(xiàn),爬取B站彈幕的API接口有兩個吭产,分別是

https://api.bilibili.com/x/v1/dm/list.so?oid=cid
http://comment.bilibili.com/+cid+.xml

后面需要加上需要爬取的視頻文件的cid侣监。B站的每個視頻都有自己獨特的av號,bv號和cid臣淤。通過av號和bv號可以確定視頻的地址橄霉,cid可以確定彈幕文件的地址。

任意打開一個彈幕文件邑蒋,例如

http://comment.bilibili.com/197603144.xml


我們可以發(fā)現(xiàn)彈幕就在這個網(wǎng)頁文件中姓蜂。

  • 獲取B站視頻的cid
    打開B站,任意找一個視頻医吊,右鍵單擊鼠標钱慢,點擊“檢查”。



    打開視頻卿堂,在右邊的Network中找heartbeat文件束莫,其中就有對應的cid(也有aid也就是av號和bvid也就是bv號)。


import imageio as imageio   #加載圖片
import requests             #發(fā)出請求
import re                   #內置庫 用于匹配正則表達式
import csv                  #文件格式
import jieba                #中文分詞
import wordcloud            #繪制詞云

cid=input('please input a cid:')
#url = 'https://api.bilibili.com/x/v1/dm/list.so?oid='+cid
url='http://comment.bilibili.com/'+cid+'.xml'
#獲取完整的彈幕文件url
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
}
#請求頭草描,模仿瀏覽器行為
response = requests.get(url,headers=headers)
# print(response.content.decode('utf-8'))
html_doc = response.content.decode('utf-8')
#把編碼轉化為utf_8編碼
res = re.compile('<d.*?>(.*?)</d>')
#正則表達式匹配彈幕
danmu = re.findall(res,html_doc)
#寫入csv文件
for i in danmu:
    with open('b站彈幕.csv','a',newline='',encoding='utf-8-sig') as file:
        writer = csv.writer(file)
        danmu = []
        danmu.append(i)
        writer.writerow(danmu)
# 顯示數(shù)據(jù)
f = open('b站彈幕.csv',encoding='utf-8')
txt = f.read()
print(txt)
f.close()

txt_list = jieba.lcut(txt)    #精確分詞
string = ' '.join((txt_list))
img='C:/Users/lenovo/Pictures/20200505101029364.png'
#本地圖片
mk = imageio.imread(img)
#控制詞云形狀的重要參數(shù)
w = wordcloud.WordCloud(max_font_size=70,
                        background_color='white',
                        font_path='C:/Windows/SIMLI.TTF',
                        mask=mk,
                        scale=3)
w.generate(string)   #生成詞云的關鍵一步
w.to_file('pycloud.png')



到這里我們成功的找到B站的彈幕文件览绿,同時按照詞頻生成了詞云。關于更加詳細的制作詞云穗慕,也就是jieba庫和wordcloud庫的知識可以移步這篇文章https://blog.csdn.net/weixin_46530492/article/details/106832412

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末饿敲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子逛绵,更是在濱河造成了極大的恐慌怀各,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暑脆,死亡現(xiàn)場離奇詭異渠啤,居然都是意外死亡,警方通過查閱死者的電腦和手機添吗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來份名,“玉大人碟联,你說我怎么就攤上這事〗┫伲” “怎么了鲤孵?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辰如。 經(jīng)常有香客問我普监,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任凯正,我火速辦了婚禮毙玻,結果婚禮上,老公的妹妹穿的比我還像新娘廊散。我一直安慰自己桑滩,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布允睹。 她就那樣靜靜地躺著运准,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缭受。 梳的紋絲不亂的頭發(fā)上胁澳,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音米者,去河邊找鬼韭畸。 笑死,一個胖子當著我的面吹牛塘雳,可吹牛的內容都是我干的陆盘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼败明,長吁一口氣:“原來是場噩夢啊……” “哼放前!你這毒婦竟也來了?” 一聲冷哼從身側響起蝙云,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤匈子,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后讳嘱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幔嗦,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年沥潭,在試婚紗的時候發(fā)現(xiàn)自己被綠了邀泉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡钝鸽,死狀恐怖汇恤,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情拔恰,我是刑警寧澤因谎,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站颜懊,受9級特大地震影響财岔,放射性物質發(fā)生泄漏风皿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一匠璧、第九天 我趴在偏房一處隱蔽的房頂上張望桐款。 院中可真熱鬧,春花似錦患朱、人聲如沸鲁僚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冰沙。三九已至,卻和暖如春执虹,著一層夾襖步出監(jiān)牢的瞬間拓挥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工袋励, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侥啤,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓茬故,卻偏偏與公主長得像盖灸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磺芭,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345