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, # 指定詞雲圖的圖片 # 停用詞< 語氣詞, 助詞,.... 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其它相關文章!
推薦閱讀:
- python實現selenium網絡爬蟲的方法小結
- Python對口紅進行數據分析來選定情人節禮物
- 詳解Python如何批量采集京東商品數據流程
- Python語言中的Selenium環境搭建
- 詳解Python 使用 selenium 進行自動化測試或者協助日常工作