爬取嗶哩嗶哩上的彈幕制作詞云

搗鼓一下爬蟲只洒,剛好這兩天《姜子牙》的預(yù)告片挺火祝钢,就看看他的彈幕吧窖杀。

需求很簡(jiǎn)單:1.爬取嗶哩嗶哩視頻網(wǎng)站的彈幕 2.制作詞云圖

在網(wǎng)上了解到嗶哩嗶哩的彈幕是放在cid對(duì)應(yīng)的xml文件里面角骤,首先找到這個(gè)cid,直接把他放在url里面請(qǐng)求獲取到彈幕內(nèi)容养葵。

import requests

from bs4 import BeautifulSoup

import bs4

import re

#獲取彈幕數(shù)據(jù):在視頻播放網(wǎng)頁打開deverloper console征堪,打開

#Network欄,找到https://api.bilibili.com/x/player/videoshot?aid=79004812&cid=135199764&jsonp=jsonp

#中的cid关拒,請(qǐng)求cid對(duì)應(yīng)的xml文件就是彈幕內(nèi)容

r = requests.get('http://comment.bilibili.com/135199764.xml')

print(r.status_code)

#轉(zhuǎn)換編碼

r.encoding = 'utf-8'

r.text

返回內(nèi)容:

然后對(duì)返回的內(nèi)容進(jìn)行提取佃蚜,常用的解析方法有:這BeautifulSoup庫庸娱,正則表達(dá)式,XPath爽锥。這里用BeautifulSoup庫來解析涌韩。

#xml文件解析,

bs = BeautifulSoup(r.text)

print(bs.prettify()) #prettify()格式化換行標(biāo)簽的函數(shù)

datalist = '' #將彈幕拼成一個(gè)字符串

clist = bs.d.parent.contents

for child in clist:

? ? cstr = child.string

? ? if child.name == 'd':

? ? ? ? datalist += cstr

然后進(jìn)一步用正則表達(dá)式去除字符串中的特殊字符氯夷,標(biāo)點(diǎn)符號(hào)等臣樱。

#去掉標(biāo)點(diǎn)符號(hào)和特殊字符

pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|!|腮考,|雇毫。|?|·|……|"') # 定義正則表達(dá)式匹配模式

string_data = re.sub(pattern, '', datalist) # 將符合模式的字符去除

string_data

最后結(jié)果:

詞頻統(tǒng)計(jì)和畫詞云圖:先用jieba庫進(jìn)行分詞踩蔚,然后使用詞頻統(tǒng)計(jì)庫collections來統(tǒng)計(jì)詞頻棚放,輸出前10看看效果,通常在統(tǒng)計(jì)詞頻的過程中馅闽,我們會(huì)對(duì)一些語氣詞等做一些優(yōu)化飘蚯,排除一些語氣詞和不恰當(dāng)?shù)脑~。這里輸出詞云時(shí)可以自定義背景圖片福也,詞云里有中文需要將字體設(shè)置為支持中文的字體局骤,不然會(huì)顯示亂碼。

import jieba # 結(jié)巴分詞

import numpy as np

import wordcloud # 詞云展示庫

import collections # 詞頻統(tǒng)計(jì)庫

from PIL import Image # 圖像處理庫

import matplotlib.pyplot as plt # 圖像展示庫

#分詞

cutlist = jieba.cut(string_data,cut_all=False)#精確分詞

objlist = []

removelist = [u'的', u'暴凑,',u'和', u'是', u'隨著', u'對(duì)于', u'對(duì)',u'等',u'能',u'都',u'峦甩。',u' ',u'、',u'中',u'在',u'了',

? ? ? ? ? ? ? ? u'通常',u'如果',u'我們',u'需要',u'我', u'啊',u'這', u'吧', u'你',u'看', u'啊啊啊', u'嗎', u'可以'] # 自定義去除詞庫现喳,去除口語等

for word in cutlist:

? ? if word not in removelist:

? ? ? ? objlist.append(word)

#統(tǒng)計(jì)詞頻

word_count = collections.Counter(objlist)

word_count_top10 = word_count.most_common(10)

print(word_count_top10)#輸出檢查

#畫詞云圖

mask = np.array(Image.open('images/wordcloud.jpg')) # 定義詞頻背景

wc = wordcloud.WordCloud(

? ? mask=mask, # 設(shè)置背景圖

? ? max_words=200, # 最多顯示詞數(shù)

? ? font_path='C:/Windows/Fonts/simhei.ttf', # 設(shè)置字體格式

? ? max_font_size=100 # 字體最大值

)

wc.generate_from_frequencies(word_count) # 從字典生成詞云

image_colors = wordcloud.ImageColorGenerator(mask) # 從背景圖建立顏色方案

wc.recolor(color_func=image_colors) # 將詞云顏色設(shè)置為背景圖方案

plt.imshow(wc) # 顯示詞云

plt.axis('off') # 關(guān)閉坐標(biāo)軸

plt.show() # 顯示圖像

輸出詞云圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凯傲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嗦篱,更是在濱河造成了極大的恐慌冰单,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默色,死亡現(xiàn)場(chǎng)離奇詭異球凰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腿宰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缘厢,“玉大人吃度,你說我怎么就攤上這事√颍” “怎么了椿每?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵伊者,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我间护,道長(zhǎng)亦渗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任汁尺,我火速辦了婚禮法精,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痴突。我一直安慰自己搂蜓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布辽装。 她就那樣靜靜地躺著帮碰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拾积。 梳的紋絲不亂的頭發(fā)上殉挽,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音拓巧,去河邊找鬼斯碌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛玲销,可吹牛的內(nèi)容都是我干的输拇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贤斜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼策吠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瘩绒,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤猴抹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锁荔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蟀给,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年阳堕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跋理。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恬总,死狀恐怖前普,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壹堰,我是刑警寧澤拭卿,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布骡湖,位于F島的核電站,受9級(jí)特大地震影響峻厚,放射性物質(zhì)發(fā)生泄漏响蕴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一惠桃、第九天 我趴在偏房一處隱蔽的房頂上張望浦夷。 院中可真熱鬧,春花似錦刽射、人聲如沸军拟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懈息。三九已至,卻和暖如春摹恰,著一層夾襖步出監(jiān)牢的瞬間辫继,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工俗慈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姑宽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓闺阱,卻偏偏與公主長(zhǎng)得像炮车,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酣溃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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