前言
本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
作者:資料皮皮俠
B站視頻的特點是可以根據視頻主鍵標識oid就可以得到字幕,一般使用地址:https://api.bilibili.com/x/v1/dm/list.so?oid=真實oid,找到oid的方法是在網頁上通過F12查看網頁資訊,重繪網頁后查看oid即可,如下:
本次使用《夏洛特煩惱》電源的實時字幕測驗,在b站的鏈接是:https://www.bilibili.com/bangumi/play/ep320665?from=search&seid=12253113013013173840,馬什么梅啊,Ma What?
播放時候使用上述方法查找oid,發現用https://api.bilibili.com/x/v1/dm/list.so?oid=183896111的鏈接可以查看字母的XML檔案串列:
1、首先,我們得到把字幕保存到本地,這里使用lxml包處理讀取的HTML并提取其中元素,保存本地;
import requests import jieba import os import numpy as np from lxml import etree from PIL import Image import jieba.analyse import matplotlib.pyplot as plt from wordcloud import WordCloud, ImageColorGenerator url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=183896111' headers={ "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0" } response=requests.get(url,headers=headers) html=etree.HTML(response.content) d_list=html.xpath("//d//text()") print("+++++++++++++++++"+os.getcwd()+"+++++++++++++++++") with open ('xialuote.txt',"a+",encoding="utf-8") as f: for t in d_list: f.write(t+'\n')
二、詞云制作,使用結巴分詞讀取資料,并計算常用詞匯出現的頻率,使用wordcloud顯示圖片;
words = '' f = open('xialuote.txt', 'r',encoding='utf-8') for i in f: words += f.read() result = jieba.analyse.textrank(words, topK=450, withWeight=True) keyworlds = dict() or i in result: keyworlds[i[0]] = i[1] #print(keyworlds) image = Image.open('test.jpg') graph = np.array(image) wc = WordCloud(font_path='simhei.ttf', background_color='Black', max_font_size=170, mask=graph) wc.generate_from_frequencies(keyworlds) image_color = ImageColorGenerator(graph) plt.imshow(wc) # plt.imshow(wc.recolor(color_func=image_color)) plt.axis('off') plt.show() wc.to_file('x.png')
輸出圖片:
PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取
可以免費領取原始碼、專案實戰視頻、PDF檔案等
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47291.html
標籤:Python
