Python采集電視劇《開端》彈幕做成詞云圖

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

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

找到頁面之后觀察該頁面的請求頭,請求方式為get,target_id為該電視劇的網(wǎng)頁ID,得到該電視劇的鏈接地址主要由target_id和timestamp時間戳構成,形如 http://mfm.video.qq.com/danmu?timestamp=0&target_id=xxxxx 且該json表明時間戳每30會更新一次彈幕信息,單位為秒,對網(wǎng)站進行分析之后,我們直接看到代碼。
完整爬蟲代碼實現(xiàn)
timestamp每增加30就會更改整個彈幕頁面,在循環(huán)中每次增加30,并更改target_id即電視劇的每一集來獲取每一集的彈幕信息,下面便是編寫的獲取彈幕的函數(shù)。這里以第一集為例子。
import requests
import pandas as pd
# 構建一個列表存儲數(shù)據(jù)
data_set = []
for page in range(15, 600, 30):
try:
# 1. 發(fā)送請求
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)
結果展示

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()

總結
到此這篇關于Python采集電視劇《開端》彈幕做成詞云圖的文章就介紹到這了,更多相關Python詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談flask截獲所有訪問及before/after_request修飾器
這篇文章主要介紹了淺談flask截獲所有訪問及before/after_request修飾器,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python并發(fā)編程之進程間通信原理及實現(xiàn)解析
這篇文章主要為大家介紹了Python并發(fā)編程之進程間通信原理及實現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
Python函數(shù)式編程模塊functools的使用與實踐
本文主要介紹了Python函數(shù)式編程模塊functools的使用與實踐,教你如何使用?functools.partial、functools.wraps、functools.lru_cache?和?functools.reduce,感興趣的可以了解一下2024-03-03

