Python采集電視劇《開(kāi)端》彈幕做成詞云圖

知識(shí)點(diǎn)介紹
爬蟲(chóng)基本思路流程
requests模塊的使用
pandas保存表格數(shù)據(jù)
pyecharts做詞云圖可視化
環(huán)境介紹
python 3.8
pycharm
requests >>> pip install requests
pyecharts >>> pip install pyecharts
網(wǎng)站分析
打開(kāi)X訊視頻的網(wǎng)頁(yè),點(diǎn)開(kāi)《開(kāi)端》,播放視頻,彈幕隨之出現(xiàn)再屏幕之上。
首先我們需要找到相應(yīng)的彈幕出自于哪里,打開(kāi)網(wǎng)頁(yè)開(kāi)發(fā)者工具,Ctrl+F輸入:“那么多座位你倆非要擠一起嗎”,找到彈幕所在的頁(yè)面

觀察發(fā)現(xiàn)這是一個(gè)json,其彈幕內(nèi)容包含在該json中的comments之中

找到頁(yè)面之后觀察該頁(yè)面的請(qǐng)求頭,請(qǐng)求方式為get,target_id為該電視劇的網(wǎng)頁(yè)ID,得到該電視劇的鏈接地址主要由target_id和timestamp時(shí)間戳構(gòu)成,形如 http://mfm.video.qq.com/danmu?timestamp=0&target_id=xxxxx 且該json表明時(shí)間戳每30會(huì)更新一次彈幕信息,單位為秒,對(duì)網(wǎng)站進(jìn)行分析之后,我們直接看到代碼。
完整爬蟲(chóng)代碼實(shí)現(xiàn)
timestamp每增加30就會(huì)更改整個(gè)彈幕頁(yè)面,在循環(huán)中每次增加30,并更改target_id即電視劇的每一集來(lái)獲取每一集的彈幕信息,下面便是編寫的獲取彈幕的函數(shù)。這里以第一集為例子。
import requests
import pandas as pd
# 構(gòu)建一個(gè)列表存儲(chǔ)數(shù)據(jù)
data_set = []
for page in range(15, 600, 30):
try:
# 1. 發(fā)送請(qǐng)求
url = f'https://mfm.video.qq.com/danmu?otype=json&target_id=7626117232%26vid%3Dn0041aa087e&session_key=0%2C0%2C0×tamp={page}&_=1641804763748'
response = requests.get(url=url)
# 2. 獲取數(shù)據(jù)
json_data = response.json()
# 3. 解析數(shù)據(jù)
comments = json_data['comments']
for comment in comments:
data_dict = {}
data_dict['commentid'] = comment['commentid']
data_dict['content'] = comment['content']
data_dict['opername'] = comment['opername']
print(data_dict)
data_set.append(data_dict)
except:
pass
# 4. 保存數(shù)據(jù)
df = pd.DataFrame(data_set)
df.to_csv('data.csv', index=False)
結(jié)果展示

word = dfword3['word'].tolist()
count = dfword3['count'].tolist()
a = [list(z) for z in zip(word, count)]
c = (
WordCloud()
.add('', a, word_size_range=[10, 50], shape='circle')
.set_global_opts(title_opts=opts.TitleOpts(title="詞云圖"))
)
c.render_notebook()

總結(jié)
到此這篇關(guān)于Python采集電視劇《開(kāi)端》彈幕做成詞云圖的文章就介紹到這了,更多相關(guān)Python詞云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python庫(kù)skimage給灰度圖像染色的方法示例
這篇文章主要介紹了python庫(kù)skimage給灰度圖像染色的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決
這篇文章主要介紹了Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
windows系統(tǒng)下Python環(huán)境的搭建(Aptana Studio)
這篇文章主要介紹了windows系統(tǒng)下Python環(huán)境的搭建(Aptana Studio),需要的朋友可以參考下2017-03-03
PyInstaller如何打包依賴文件至目標(biāo)程序目錄
這篇文章主要介紹了PyInstaller如何打包依賴文件至目標(biāo)程序目錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Python+PyQt5+MySQL實(shí)現(xiàn)天氣管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python+PyQt5+MySQL實(shí)現(xiàn)天氣管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
Python中利用ItsDangerous快捷實(shí)現(xiàn)數(shù)據(jù)加密
這篇文章主要介紹了Python中利用ItsDangerous快捷實(shí)現(xiàn)數(shù)據(jù)加密,通過(guò)使用Python庫(kù)ItsDangerous,我們就可以高效快捷地完成數(shù)據(jù)加密/解密的過(guò)程,本文結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2022-11-11
Python爬取APP下載鏈接的實(shí)現(xiàn)方法
這篇文章主要實(shí)現(xiàn)的是批量下載安卓APP。顯然用手點(diǎn)是不科學(xué)的。于是嘗試用Python寫了一個(gè)半自動(dòng)化的腳本。所謂半自動(dòng)化,就是把下載鏈接批量抓取下來(lái),然后一起貼到迅雷里進(jìn)行下載,這樣可以快速批量下載。有需要的朋友們可以一起看看吧。2016-09-09

