用python 抓取B站視頻評論,制作詞雲
阿新 • • 發佈:2017-12-08
port mil query 雲圖 ges cal 爬取 close hid
python 作為爬蟲利器,與其有很多強大的第三方庫是分不開的,今天說的爬取B站的視頻評論,其實重點在分析得到的評論化作嵌套的字典,在其中取出想要的內容。層層嵌套,眼花繚亂,分析時應細致!步驟分為以下幾點:
- F12進入開發者選項
進入B站你想觀看的視頻頁面,例如我看的是咬人貓的一個視頻,進入開發者選項後,向下拉取視頻評論,這時評論內容才被加載出來,此刻在開發者選項中網絡那裏就可以看到從網站獲取的很多信息,仔細查找,發現我們想要的如下圖:
可以看到評論區的內容,點開消息頭中的請求網址(https://api.bilibili.com/x/v2/reply?callback=jQuery172048896660782015544_1512700122908&jsonp=jsonp&pn=1&type=1&oid=11022534&sort=0&_=1512700148066),復制粘貼到瀏覽器中查看,可看到一頁的評論內容,取出不必要的網址內容,剩余為:https://api.bilibili.com/x/v2/reply?pn=1&type=1&oid=11022534 ,其中pn即為第幾頁的評論,oid為視頻的av號。 - 分析獲取內容字典格式,嵌套內容的包含關系
- 代碼獲取內容,寫入本地文件
1 import requests 2 import json 3 def getHTML(html): 4 count=1 5 fi=open(‘bilibili.txt‘,‘w‘,encoding=‘utf-8‘) 6 while(True): 7 url=html+str(count) 8 url=requests.get(url) 9 if url.status_code==200: 10 cont=json.loads(url.text)
獲取評論內容 - 繪制詞雲
繪制詞雲過程分為:讀取繪制詞雲文本,用結巴(第三方庫jieba)將文本中高頻詞匯分出,為詞雲設置背景圖片(可省略),查看及保存繪制詞雲圖
代碼如下:
1 from wordcloud import WordCloud,ImageColorGenerator 2 import matplotlib.pyplot as plt 3 from PIL import Image 4 import numpy as np 5 from os import path 6 import jieba 7 8 lj=path.dirname(__file__) #當前文件路徑 9 text=open(path.join(lj,‘bilibili.txt‘),encoding=‘utf-8‘).read() #讀取的文本 10 jieba.add_word(‘咬人貓‘) 11 jieba.add_word(‘喵醬‘) #添加結巴分辨不了的詞匯 12 jbText=‘ ‘.join(jieba.cut(text)) 13 imgMask=np.array(Image.open(path.join(lj,‘msk.png‘))) #讀入背景圖片 14 wc=WordCloud( 15 background_color=‘white‘, 16 max_words=500, 17 font_path=‘msyh.ttc‘, #默認不支持中文 18 mask=imgMask, #設置背景圖片 19 random_state=30 #生成多少種配色方案 20 ).generate(jbText) 21 ImageColorGenerator(imgMask) #根據圖片生成詞雲顏色 22 # plt.imshow(wc) 23 # plt.axis(‘off‘) 24 # plt.show() 25 wc.to_file(path.join(lj,‘biliDM.png‘)) 26 print(‘成功保存詞雲圖片!‘)
詞雲繪制
在代碼極少的情況下,python就能做出如此驚人的工作,只能是 人生苦短,我用python 了。
原創不易,尊重版權。轉載請註明出處:http://www.cnblogs.com/xsmile/
用python 抓取B站視頻評論,制作詞雲