【Python】用selenium自动把歌词评论下载下来,做成好看的词云图

news/2024/11/23 5:20:34/

前言

一首歌热门了,参与评论的人也很多,这时无论好坏评论都来了,没有人控评得话,指不定乱七八糟

但是自己有喜欢看评论,不想影响好心情,想看看精彩评论,看看歌词立意,那怎么办呢?

那本次咱们就把歌词给自动下载保存到电脑上,做成词云图给它分析分析…

本次目的

用selenium自动把歌词评论下载下来,做成好看的词云图

本次用到的模块和包:

———————————————————————————————————————————————————————————-------

  • re # 正则表达式 内置模块
  • selenium # 实现浏览器自动操作的
  • jieba # 中文分词库
  • wordcloud # 词云图库
  • imageio # 图像模块
  • time # 内置模块

———————————————————————————————————————————————————————————-------
需要安装的模块安装方法:

以 selenium 为例,直接pip install selenium

下载速度慢就用镜像源下载

驱动安装

要实现浏览器自动操作,咱们得安装一个浏览器驱动。

网址我就不发了,网上直接搜谷歌浏览器驱动就可以找到,实在找不到的话私聊我

建议用谷歌浏览器,以谷歌浏览器为例,首先看一下咱们浏览器的的版本。

浏览器右上角三个点,点开后点击设置。
在这里插入图片描述

然后点击关于Chrome ,右边的那一串数字就是版本号了。
在这里插入图片描述
然后找到跟你的版本号相同的版本下载,没有相同的就下载最相近的版本也可以。

在这里插入图片描述
你的代码放到一起,跟代码放一起的话,缺点是你每次要使用,没保存的话都得去下载。

还有一种办法是直接放到你的python目录,这种的优点是一次搞定可以用很多次。缺点是每次版本更新,你还是得去下载新的。

我反正每次都是去下载新的,又不是经常用。

一、下载歌曲评论

1.代码实现

首先导入一下模块

模块是必须要导入的东西哦,没有导入的话,运行时即使你代码正确也是会报错的哦~

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').textcnt = 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()

2.爬取评论运行效果

在这里插入图片描述

二、制作词云图

代码实现

绘制词云图/大小设置,词云图图案可以自己去挑选喜欢的哦

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('词云图制作成功...')

效果展示

在这里插入图片描述

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!


http://www.ppmy.cn/news/709315.html

相关文章

那些值得我们用心体会的惊艳歌词

一、不管你爱与不爱,都是历史的尘埃。——北京一夜 多么强烈的人生虚无感。 钱钟书说:目光放远,万事皆悲。 一个好友说:再过二十年,现在追求的种种都灰飞烟灭了。 虽然《好了歌》写尽了这一类的感受,但…

无意间看到这样一首歌 Take me to your heart

和未婚妻正式分手好些时候了,虽然她现在还和我住在同一屋檐下,但心却不在了。周未的晚上,她出去陪新男友了,一个人无聊的上网翻看别人的BLOG,无意间看到这样一首歌 Take me to your heart,张学友《吻别》的…

让我摘下星星送给你_有一首歌,歌词是,摘下星星送给你,摘下月亮送给你……什么歌...

展开全部 歌名:《小苹果》 填词:王太62616964757a686964616fe78988e69d8331333365666265利 谱曲:王太利 歌曲原唱:筷子兄弟 王太利:我种下一颗种子 终于长出了果实 今天是个伟大日子 肖央:摘下星星送给…

JavaFX: Java音乐播放读取歌词

JavaFX: Java音乐播放读取歌词 1、lrc歌词文件2、解析lrc歌词2.1 读取每行歌词2.2 解析歌词时间标签Time-tag2.3 解析歌词标识标签ID-tags2.4 创建对象包含歌词相关信息 3、播放显示歌词** 相关文献 JavaFX: Java音乐播放 1、lrc歌词文件 lrc歌词文件的扩展名 1、标准格式&a…

MP3制作之LRC歌词文件解析(附:源代码)

LRC 歌词同步 一、准备工作 既然要制作歌词同步程序,首先要准备一首歌,我们就以“周杰伦-青花瓷”为例。首先要下载这首“青花瓷.mp3”,保存为“C:/My Player/Music/青花瓷.mp3”。还要下载青花瓷的 LRC 文件,大家可以到网上下…

歌词分析浅析

歌词分析浅析 最近正在考虑新歌推荐的问题,突然想起了一直没有处理过的对象-歌词,想利用歌词做点什么,没什么目的,尝试了歌词分词,歌词相似度计算、歌词分类、word2vec歌词聚合、查找相似歌曲,最终收获了一…

从32万字的歌词里找一首最伤感的歌,竟然是周杰伦的...

作者:飘荡的鱼头 “ 我分析了王力宏、周杰伦、林俊杰和潘玮柏的32万字歌词,就是为了找到最伤感的一首歌。 关于华语男歌手的认识应该是停在初中了吧。那时火的是周杰伦,王力宏,林俊杰和潘玮柏——我们班几个男生因为经常唱他们的歌…

有哲理的歌词

1 不管你爱与不爱,都是历史的尘埃。——北京一夜      多么强烈的人生虚无感。   钱钟书说:目光放远,万事皆悲。   一个好友说:再过二十年,现在追求的种种都灰飞烟灭了。   虽然《好了歌》写尽了这一类…