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)再屏幕之上。
首先我們需要找到相應(yīng)的彈幕出自于哪里,打開網(wǎng)頁開發(fā)者工具,Ctrl+F輸入:“那么多座位你倆非要擠一起嗎”,找到彈幕所在的頁面
觀察發(fā)現(xiàn)這是一個json,其彈幕內(nèi)容包含在該json中的comments之中
找到頁面之后觀察該頁面的請求頭,請求方式為get,target_id為該電視劇的網(wǎng)頁ID,得到該電視劇的鏈接地址主要由target_id和timestamp時間戳構(gòu)成,形如 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 # 構(gòu)建一個列表存儲數(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)
結(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采集電視劇《開端》彈幕做成詞云圖的文章就介紹到這了,更多相關(guān)Python詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談flask截獲所有訪問及before/after_request修飾器
這篇文章主要介紹了淺談flask截獲所有訪問及before/after_request修飾器,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Python并發(fā)編程之進程間通信原理及實現(xiàn)解析
這篇文章主要為大家介紹了Python并發(fā)編程之進程間通信原理及實現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01Python函數(shù)式編程模塊functools的使用與實踐
本文主要介紹了Python函數(shù)式編程模塊functools的使用與實踐,教你如何使用?functools.partial、functools.wraps、functools.lru_cache?和?functools.reduce,感興趣的可以了解一下2024-03-03