python爬歌词生成词云图_Python爬取李荣浩最短歌曲贝贝的网易云评论并做成词云图...

本文介绍了如何使用Python爬取李荣浩歌曲《贝贝》在网易云音乐的评论,并制作成词云图。通过分析评论数据,展示了用户对这首4秒歌曲的独特反应。主要使用了jieba分词库和wordcloud库来处理和展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在18 年的 10 月 17 号,李荣浩发了一张新专辑「耳朵」,专辑里有一首歌「贝贝」,只有 4 秒,歌词也就两个字。而且这首歌的作曲 、作词 、编曲、制作人、和声、录音师、混音师、录音室、混音室、母带后期制作人、母带后期处理工程师、母带后期处理录音室一样都没少。这首歌在网易云音乐里的评论截止到我写这篇文章时已经有 7.4 万多的评论。这些评论都说了什么呢?

我用 Python 把热门评论和全部评论提取出来做成了词云图,我们一起来看看大家都说了什么。

热门评论词云图如下。大家都很意外,这竟然是一首歌!这应该是年度最短的一首歌,看来大家还是意犹未尽啊,哈哈

全部评论词云图如下,全部评论大家都在哈哈大笑,感觉都被浩哥 4 秒的歌曲逗笑了,还有些朋友以为手机卡了,还有单曲循环听这首歌的,也许在年度网易听歌报告单上:10 月 17 日是一个特别的日子,「贝贝」这首歌你听了三百次。

由于有些爱学习的小伙伴需要教程,接下来我就把给大家分析下。

程序环境

语言:Python 3

编辑器:Pycharm

主要库

jieba:一个强大的分词库,完美支持中文分词。

matplotlib:一个 Python 的 2D 绘图库。

wordcloud:制作文字云图片库。

PIL:Python 中图像处理库。

页面分析

打开网页版网易云音乐中「贝贝」这首歌,F12 打开谷歌调试工具。在 Network 中查看评论数据。我们看到第一页 json 信息中存在热门评论和普通评论信息。

要想提取出这些评论,需要知道它的请求,我们切到 Headers 查看请求链接,发现请求方式是 POST。

Headers 页面向下滑动,发现有两个参数,而且参数 params 和 encSecKey 是加密后的,每页都不一样。

怎么去解密今天就不讲了,因为在我苦苦探索中,我发现了一个没有加密的评论接口可以直接调用。

Python

http://music.163.com/api/v1/resource/comments/R_SO_4_1318234987?limit=20&offset=0

1

http://music.163.com/api/v1/resource/comments/R_SO_4_1318234987?limit=20&offset=0

通过在页面中打开,可以看到评论的 json 格式,其中 R_SO_4 后面的数字是歌曲的 id,limit 和 offset 分别表示页面评论数和偏移量,评论数是 20 条,偏移量每 20 条往上递增。

这样我们就可以改变页面的偏移量来切换页面了。

代码分析

首先我们定义一个获取页面 json 信息的方法。

制作热评词云图

因为热门都在第一页,所以链接是固定的。热门评论在 json 信息的 hotComments 里。提取出来并用 jieba 库进行分词处理。把词云图的背景图放在固定目录下,定义词云背景图颜色、尺寸、字体大小,字体颜色。

制作评论词云图

获取全部评论重点在分页上,每页的评论都在 0 到 20 json 格式里面。用双层 for 循环进行提取全部评论,外层循环控制页数,内层循环提取 0 到 20 条评论。截止到我写文章时已经有 7 万多评论,3 千多页,全部爬取下来比较耗时,为了节省时间,我只爬取了前 100 页面的评论信息。大家注意下,在切换页面时加一个随机等待时间,防止 ip 被封。以下是提取前 100 页评论的代码,制作词云图代码和上面一样就不放出来了,本文全部源码获取方式见文末。

在我的公众号「Python知识圈」回复「贝贝」获取本文源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值