Python selenium把歌词评论做成词云图

 更新时间:2022年01月19日 11:30:37   作者:魔王不会哭  
大家好,本篇文章主要讲的是Python selenium把歌词评论做成词云图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

前言

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

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

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

本次目的

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

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

效果展示

在这里插入图片描述

总结

到此这篇关于Python selenium把歌词评论做成词云图的文章就介绍到这了,更多相关Python selenium词云图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3实现发送QQ邮件功能(附件)

    Python3实现发送QQ邮件功能(附件)

    这篇文章主要为大家详细介绍了Python3实现发送QQ邮件功能,附件方面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 基于OpenCV的仿射变换实现方法

    基于OpenCV的仿射变换实现方法

    这篇文章主要给大家介绍了关于基于OpenCV的仿射变换实现方法,仿射变换相当于将二维平面上的每个坐标点与一个2x3的矩阵相乘,得到新的坐标,而透视变换则是与3x3的矩阵相乘,需要的朋友可以参考下
    2024-01-01
  • Python实现农历转换教程详解

    Python实现农历转换教程详解

    农历,是我国现行的传统历法。它是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。本文将用Python实现农历转换,需要的可以参考一下
    2022-03-03
  • python执行js代码的方法

    python执行js代码的方法

    现在为了防止反爬,前端使用的反爬技术比较多的是js代码混淆。python作为爬虫界的扛把子,免不了和js打交道,因此我们需要了解如何使用Python执行js代码
    2021-05-05
  • Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)

    Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)

    这篇文章主要介绍了Python3.7基于hashlib和Crypto实现加签验签功能,环境是基于python3.7,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • python3 deque 双向队列创建与使用方法分析

    python3 deque 双向队列创建与使用方法分析

    这篇文章主要介绍了python3 deque 双向队列创建与使用方法,结合实例形式分析了python3 deque 双向队列创建、添加、清空、拷贝等相关操作技巧与使用注意事项,需要的朋友可以参考下
    2020-03-03
  • Python实现的redis分布式锁功能示例

    Python实现的redis分布式锁功能示例

    这篇文章主要介绍了Python实现的redis分布式锁功能,结合实例形式分析了Python操作redis分布式锁与解锁功能相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python3实现英文字母转换哥特式字体实例代码

    Python3实现英文字母转换哥特式字体实例代码

    这篇文章主要给大家介绍了关于Python3实现英文字母转换哥特式字体的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python读取图片属性信息的实现方法

    Python读取图片属性信息的实现方法

    这篇文章介绍了利用Python读取图片属性信息的方法,读取的内容包括GPS 信息、图片分辨率、图片像素、设备商、拍摄设备等,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 如何将一个CSV格式的文件分割成两个CSV文件

    如何将一个CSV格式的文件分割成两个CSV文件

    这篇文章主要介绍了如何将一个CSV格式的文件分割成两个CSV文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论