您好,登錄后才能下訂單哦!
今天給大家介紹一下Python selenium如何把歌詞評論做成詞云圖。文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
一首歌熱門了,參與評論的人也很多,這時無論好壞評論都來了,沒有人控評得話,指不定亂七八糟
但是自己有喜歡看評論,不想影響好心情,想看看精彩評論,看看歌詞立意,那怎么辦呢?
那本次咱們就把歌詞給自動下載保存到電腦上,做成詞云圖給它分析分析。
用selenium自動把歌詞評論下載下來,做成好看的詞云圖
re # 正則表達式 內置模塊
selenium # 實現瀏覽器自動操作的
jieba # 中文分詞庫
wordcloud # 詞云圖庫
imageio # 圖像模塊
time # 內置模塊
需要安裝的模塊安裝方法:
以 selenium 為例,直接pip install selenium
下載速度慢就用鏡像源下載
要實現瀏覽器自動操作,咱們得安裝一個瀏覽器驅動。
網址我就不發了,網上直接搜谷歌瀏覽器驅動就可以找到,實在找不到的話私聊我
建議用谷歌瀏覽器,以谷歌瀏覽器為例,首先看一下咱們瀏覽器的的版本。
瀏覽器右上角三個點,點開后點擊設置。
然后點擊關于Chrome ,右邊的那一串數字就是版本號了。
然后找到跟你的版本號相同的版本下載,沒有相同的就下載最相近的版本也可以。
你的代碼放到一起,跟代碼放一起的話,缺點是你每次要使用,沒保存的話都得去下載。
還有一種辦法是直接放到你的python目錄,這種的優點是一次搞定可以用很多次。缺點是每次版本更新,你還是得去下載新的。
我反正每次都是去下載新的,又不是經常用。
首先導入一下模塊
模塊是必須要導入的東西哦,沒有導入的話,運行時即使你代碼正確也是會報錯的哦~
from selenium import webdriver import re import time
Python文件名或者包名不要命名為selenium,會導致無法導入。
webdriver可以認為是瀏覽器的驅動器,要驅動瀏覽器必須用到webdriver,支持多種瀏覽器。
創建一個瀏覽器對象
driver = webdriver.Chrome()
請求頁面
driver.get('https://music.163.com/#/song?id=569213220') driver.implicitly_wait(10) # 隱式等待 瀏覽器渲染頁面 智能化等待 driver.maximize_window() # 最大化瀏覽器
driver.switch_to.frame(0)
# document.documentElement.scrollTop 指定頁面的高度 # document.documentElement.scrollHeight 獲取頁面的高度 # document.documentElement.scrollTop 指定頁面的高度 # document.documentElement.scrollHeight 獲取頁面的高度 js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight' driver.execute_script(js)
獲取評論數據/保存/點擊下一頁
for click in range(10): divs = driver.find_elements_by_css_selector('.itm') for div in divs: cnt = div.find_element_by_css_selector('.cnt.f-brk').text cnt = cnt.replace('\n', ' ') # 替換換行符 cnt = re.findall(':(.*)', cnt)[0] with open('contend.txt', mode='a', encoding='utf-8') as f: f.write(cnt + '\n') # 找到下一頁標簽點擊 driver.find_element_by_css_selector('.znxt').click() time.sleep(1) input('程序阻塞.')
最后退出瀏覽器
driver.quit()
代碼實現
繪制詞云圖/大小設置,詞云圖圖案可以自己去挑選喜歡的哦
import jieba # 中文分詞庫 import wordcloud # 詞云圖庫 import imageio # 圖像模塊 file = open('contend.txt', mode='r', encoding='utf-8') txt = file.read() # print(txt) txt_list = jieba.lcut(txt) print('分詞結果',txt_list) string = ' '.join(txt_list) print('合并分詞:', string) """制作詞云圖""" # 讀取圖像 img = imageio.imread('音樂.png') # 設置詞云圖 wc = wordcloud.WordCloud( width=1000, # 詞云圖的寬 height=700, # 圖片的高 background_color= 'black', # 詞云圖背景顏色 font_path='msyh.ttc', # 詞云字體, 微軟雅黑, 系統自帶 scale=10, # 字體大小 # 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('output2.png') print('詞云圖制作成功...')
效果展示
python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。
以上就是Python selenium如何把歌詞評論做成詞云圖的全部內容了,更多與Python selenium如何把歌詞評論做成詞云圖相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。