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