Python爬取網易雲歌曲評論實現詞雲圖

前言

emmmm 沒什麼說的,想說的都在代碼裡

環境使用

Python 3.8 解釋器 3.10

Pycharm 2021.2 專業版

selenium 3.141.0

本次要用到selenium模塊,所以請記得提前下載好瀏覽器驅動,配置好環境

代碼實現

先是安裝、導入所需模塊

from selenium import webdriver  # 導入瀏覽器的功能
import re   # 正則表達式模塊, 內置
import time   # 時間模塊, 程序延遲

1. 創建一個瀏覽器對象

driver = webdriver.Chrome()

2. 執行自動化

driver.get('https://music.163.com/#/song?id=488249475')
# selenium無法直接獲取到嵌套頁面裡面的數據
driver.switch_to.frame(0)  # switch_to.frame()  切換到嵌套網頁
driver.implicitly_wait(10)  # 讓瀏覽器加載的時候, 等待渲染頁面

下拉頁面, 直接下拉到頁面的底部

js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight'
driver.execute_script(js)

3.解析數據

divs = driver.find_elements_by_css_selector('.itm') 
# 所有div  css語法: 定位到 html 數據/xpath/正則
for div in divs:
    cnt = div.find_element_by_css_selector('.cnt.f-brk').text
    cnt = re.findall(':(.*)', cnt)[0]  # 中英文有區別
    print(cnt)

保存數據

翻頁

for page in range(10):  # 控制翻頁  速度太快
    # 翻頁 , 找到下一頁標簽, 點擊?
    driver.find_element_by_css_selector('.znxt').click()
    time.sleep(1)
# selenium  欲速則不達

保存為txt文件

with open('contend.txt', mode='a', encoding='utf-8') as f:
    f.write(cnt + '\n')

運行代碼得到結果

再做個詞雲

導入相關模塊

import jieba  # 中文分詞庫  pip install jieba
import wordcloud  # 制作詞雲圖的模塊  pip install wordcloud
import imageio

讀取文件數據

with open('contend.txt', mode='r', encoding='utf-8') as f:
    txt = f.read()
print(txt)

詞雲圖 分詞<中文(詞語)> 基於結果

txt_list = jieba.lcut(txt)
print('分詞結果:', txt_list)

合並

string_ = ' '.join(txt_list)  # 1 + 1 = 2   字符串的基本語法
print('合並分詞:', string_)

創建詞雲圖

wc = wordcloud.WordCloud(
    width=1000,  # 圖片的寬
    height=800,  # 圖片的高
    background_color='white',  # 圖片的背景色
    font_path='msyh.ttc',  # 微軟雅黑
    scale=15,  # 詞雲圖默認的字體大小
    # mask=img,  # 指定詞雲圖的圖片
    # 停用詞&lt; 語氣詞, 助詞,....
    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爬取網易雲歌曲評論實現詞雲分析的詳細內容,更多關於Python爬取歌曲評論詞雲分析的資料請關註WalkonNet其它相關文章!

推薦閱讀: