Python爬取網(wǎng)易云歌曲評(píng)論實(shí)現(xiàn)詞云圖
前言
emmmm 沒(méi)什么說(shuō)的,想說(shuō)的都在代碼里
環(huán)境使用
Python 3.8 解釋器 3.10
Pycharm 2021.2 專業(yè)版
selenium 3.141.0
本次要用到selenium模塊,所以請(qǐng)記得提前下載好瀏覽器驅(qū)動(dòng),配置好環(huán)境
代碼實(shí)現(xiàn)
先是安裝、導(dǎo)入所需模塊
from selenium import webdriver # 導(dǎo)入瀏覽器的功能 import re # 正則表達(dá)式模塊, 內(nèi)置 import time # 時(shí)間模塊, 程序延遲
1. 創(chuàng)建一個(gè)瀏覽器對(duì)象
driver = webdriver.Chrome()
2. 執(zhí)行自動(dòng)化
driver.get('https://music.163.com/#/song?id=488249475') # selenium無(wú)法直接獲取到嵌套頁(yè)面里面的數(shù)據(jù) driver.switch_to.frame(0) # switch_to.frame() 切換到嵌套網(wǎng)頁(yè) driver.implicitly_wait(10) # 讓瀏覽器加載的時(shí)候, 等待渲染頁(yè)面
下拉頁(yè)面, 直接下拉到頁(yè)面的底部
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight' driver.execute_script(js)
3.解析數(shù)據(jù)
divs = driver.find_elements_by_css_selector('.itm') # 所有div css語(yǔ)法: 定位到 html 數(shù)據(jù)/xpath/正則 for div in divs: cnt = div.find_element_by_css_selector('.cnt.f-brk').text cnt = re.findall(':(.*)', cnt)[0] # 中英文有區(qū)別 print(cnt)
保存數(shù)據(jù)
翻頁(yè)
for page in range(10): # 控制翻頁(yè) 速度太快 # 翻頁(yè) , 找到下一頁(yè)標(biāo)簽, 點(diǎn)擊? driver.find_element_by_css_selector('.znxt').click() time.sleep(1) # selenium 欲速則不達(dá)
保存為txt文件
with open('contend.txt', mode='a', encoding='utf-8') as f: f.write(cnt + '\n')
運(yùn)行代碼得到結(jié)果
再做個(gè)詞云
導(dǎo)入相關(guān)模塊
import jieba # 中文分詞庫(kù) pip install jieba import wordcloud # 制作詞云圖的模塊 pip install wordcloud import imageio
讀取文件數(shù)據(jù)
with open('contend.txt', mode='r', encoding='utf-8') as f: txt = f.read() print(txt)
詞云圖 分詞<中文(詞語(yǔ))> 基于結(jié)果
txt_list = jieba.lcut(txt) print('分詞結(jié)果:', txt_list)
合并
string_ = ' '.join(txt_list) # 1 + 1 = 2 字符串的基本語(yǔ)法 print('合并分詞:', string_)
創(chuàng)建詞云圖
wc = wordcloud.WordCloud( width=1000, # 圖片的寬 height=800, # 圖片的高 background_color='white', # 圖片的背景色 font_path='msyh.ttc', # 微軟雅黑 scale=15, # 詞云圖默認(rèn)的字體大小 # mask=img, # 指定詞云圖的圖片 # 停用詞< 語(yǔ)氣詞, 助詞,.... stopwords=set([line.strip() for line in open('cn_stopwords.txt', mode='r', encoding='utf-8').readlines()] ) ) print('正在繪制詞云圖...') wc.generate(string_) # 繪制詞云圖 wc.to_file('out.png') # 保存詞云圖 print('詞云圖繪制完成...')
最后效果
以上就是Python爬取網(wǎng)易云歌曲評(píng)論實(shí)現(xiàn)詞云分析的詳細(xì)內(nèi)容,更多關(guān)于Python爬取歌曲評(píng)論詞云分析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pycharm配置python 設(shè)置pip安裝源為豆瓣源
這篇文章主要介紹了pycharm配置python 設(shè)置pip安裝源為豆瓣源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02jupyter notebook更換皮膚主題的實(shí)現(xiàn)
這篇文章主要介紹了jupyter notebook更換皮膚主題的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python3.7 + Yolo3實(shí)現(xiàn)識(shí)別語(yǔ)音播報(bào)功能
這篇文章主要介紹了Python3.7 + Yolo3識(shí)別語(yǔ)音播報(bào)功能,開(kāi)始之前我們先得解析出來(lái)Yolo3的代碼,從而獲取到被識(shí)別出來(lái)的物體標(biāo)簽,具體詳細(xì)過(guò)程跟隨小編一起看看吧2021-12-12Python實(shí)現(xiàn)的本地文件搜索功能示例【測(cè)試可用】
這篇文章主要介紹了Python實(shí)現(xiàn)的本地文件搜索功能,涉及Python針對(duì)文件與目錄的遍歷、判斷、編碼轉(zhuǎn)換、查找等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗(yàn)簽
這篇文章主要介紹了Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗(yàn)簽,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-12-12pandas數(shù)據(jù)聚合與分組運(yùn)算的實(shí)現(xiàn)
本文主要介紹了pandas數(shù)據(jù)聚合與分組運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果
這篇文章主要介紹了python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果的方法,是比較實(shí)用的技巧,可將掃描結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-10-10pandas實(shí)現(xiàn)將dataframe滿足某一條件的值選出
今天小編就為大家分享一篇pandas實(shí)現(xiàn)將dataframe滿足某一條件的值選出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06