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)獲取每一集的彈幕信息,下面便是編寫(xiě)的獲取彈幕的函數(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)文章
淺談flask截獲所有訪(fǎng)問(wèn)及before/after_request修飾器
這篇文章主要介紹了淺談flask截獲所有訪(fǎng)問(wèn)及before/after_request修飾器,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python寫(xiě)入文件自動(dòng)換行問(wèn)題的方法
這篇文章主要介紹了python寫(xiě)入文件自動(dòng)換行問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python Web項(xiàng)目Cherrypy使用方法鏡像
這篇文章主要介紹了Python Web項(xiàng)目Cherrypy使用方法鏡像,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python并發(fā)編程之進(jìn)程間通信原理及實(shí)現(xiàn)解析
這篇文章主要為大家介紹了Python并發(fā)編程之進(jìn)程間通信原理及實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01詳解Python如何查看一個(gè)函數(shù)的參數(shù)
inspect模塊提供了許多用于檢查對(duì)象的工具函數(shù),其中包括用于獲取函數(shù)參數(shù)信息的函數(shù),所以在Python中,大家可以使用inspect模塊來(lái)查看一個(gè)函數(shù)的參數(shù)信息,本文就來(lái)和大家講講具體操作吧2023-05-05Python函數(shù)式編程模塊functools的使用與實(shí)踐
本文主要介紹了Python函數(shù)式編程模塊functools的使用與實(shí)踐,教你如何使用?functools.partial、functools.wraps、functools.lru_cache?和?functools.reduce,感興趣的可以了解一下2024-03-03深入理解Python虛擬機(jī)中魔術(shù)方法的使用
這篇文章主要給大家介紹在?cpython?當(dāng)中一些比較花里胡哨的魔術(shù)方法,以幫助我們自己實(shí)現(xiàn)比較花哨的功能,當(dāng)然這其中也包含一些也非常實(shí)用的魔術(shù)方法,需要的可以參考下2023-05-05