0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

抓取网易云音乐热歌榜里的热评的爬虫

马哥Linux运维 来源:未知 作者:李倩 2018-09-03 11:39 次阅读

前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的歌曲推荐和独具特色的用户评论,于是写了这个抓取网易云音乐热歌榜里的热评的爬虫。我也是刚刚入门爬虫,有什么意见和问题欢迎提出,大家一起共同进步。

废话就不多说了~

我们的目标是爬取网易云中的热歌排行榜中所有歌曲的热门评论。

这样既可以减少我们需要爬取的工作量,又可以保存到高质量的评论。

首先,我们打开网易云网页版,如图:

点击排行榜,然后点击左侧云音乐热歌榜,如图:

我们先随便打开一个歌曲,找到如何抓取指定的歌曲的热门歌评的方法,如图,我选了一个最近我比较喜欢的歌曲为例:

进去后我们会看到歌评就在这个页面的下面,接下来我们就要想办法获取这些评论。

接下来打开web控制台(chrom的话打开开发者工具,如果是其他浏览器应该也是类似),chrom下按F12,如图:

选则Network,然后我们按F5刷新一下,刷新之后得到的数据如下图所示:

可以看到浏览器发送了非常多的信息,那么哪一个才是我们想要的呢?这里我们可以通过状态码做一个初步的判断,status code(状态码)标志了服务器请求的状态,这里状态码为200即表示请求正常,而304则表示不正常(状态码种类非常多,如果要想详细了解可以自行搜索,这里不说304具体的含义了)。所以我们一般只用看状态码为200的请求就可以了,还有就是,我们可以通过右边栏的预览来粗略观察服务器返回了什么信息(或者查看响应)。通过这两种方法结合一般我们就可以快速找到我们想要分析的请求。通过反复的查找,终于找到了含有歌评的请求,如图:

可能截图在CSDN上不是很清楚,我们在一个Name为R_SO_4_489998494?csrf_token=的POST请求中找到了包含这首歌的歌评。我们把这个分块截图发出来,这样可以看的清楚一些:

请求基本信息:

请求头部:

请求中的表单数据:

我们可以看到,包含这首歌歌评的请求url为http://music.163.com/weapi/v1/resource/comments/R_SO_4_489998494?csrf_token=,我们换了几首歌后发现,这个请求的前部分都是一样的,只是R_SO_4_后面紧跟的一串数字不一样。我们可以推测出,每一首歌都有一个指定的id,R_SO_4_后面紧跟的就是这首歌的id。

我们再看一下提交的表单数据,我们会发现表单中需要填两个数据,名称为params和encSecKey。后面紧跟的是一大串字符,换几首歌会发现,每首歌的params和encSecKey都是不一样的,因此,这两个数据可能经过一个特定的算法进行加密过的。

服务器返回的和评论相关的数据为json格式的,里面含有非常丰富的信息(比如有关评论者的信息,评论日期,点赞数,评论内容等等),其中hotComments就是我们要找的热门评论,总共15条,如图所示:

至此,我们已经确定了方向了,即只需要确定params和encSecKey这两个参数值即可。但是这两个参数是经过特定的算法进行加密的,怎么办呢?我发现了一个规律,http://music.163.com/weapi/v1/resource/comments/R_SO_4_489998494?csrf_token=中 R_SO_4_后面的数字就是这首歌的id值,而对于不同的歌曲的param和encSecKey值,如果把一首歌比如A的这两个参数值传给B这首歌,那么对于相同的页数,这种参数是通用的,即A的第一页的两个参数值传给其他任何一首歌的两个参数,都可以获得相应歌曲的第一页的评论,对于第二页,第三页等也是类似。

而我们其实只需要获取第一页的15条热门评论,所以我们只需要随便找一首歌,将这首歌第一页中的该请求中的params和encSecKey这两个参数值复制下来,就可以使用了。

关于这两个参数如何解密,强大的知乎上其实已经有答案的了,感兴趣的朋友可以进去看一下(https://www.zhihu.com/question/36081767),我们在这里就只需要用我们这种偷懒的办法就可以完成需求了,xixi。

到此为止,我们如何抓取网易云音乐的热门评论已经分析完了,我们再分析一下如何获取云音乐热歌榜中所有歌曲的信息。

我们需要获取云音乐热歌榜中的所有歌曲的歌曲名和对应的id值。

跟上面的分析步骤类似,我们先进入热歌榜的网址,如图:

按F12,进入WEB工作台,如图:

我们在一个名为toplist?id=3778678的GET请求中,找到了该榜单的所有歌曲信息。

请求对应的信息如图:

我们预览一下该请求返回的结果,如图:

我们在代码的第524行我们找到了包含歌曲信息的代码,如图:

因此,我们只需要将该请求的代码中,将包含信息的代码筛选出来。

我们在这里使用正则表达式进行数据筛选。

通过观察特点,我们可以通过两次正则表达式的筛选,将我们需要的歌曲信息提取出来。

第一次正则表达式我们将该请求返回的所有代码中,提取出第525行代码。

第一次正则表达式如下:

第二次正则表达式我们将该第524行中我们需要的歌曲信息提取出来,我们需要歌曲的歌名和id,对应的正则表达式如下:

获取歌名:

  • (.*?)
  • 获取歌曲的id:

  • .*?
  • 到此,我们整个过程已经分析完了,上代码看具体细节~~

    代码如下:

    代码运行结果如下:

    对比一下网页上《如果我爱你》这首歌的歌评和我们保存下的歌评:

    声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
    • python
      +关注

      关注

      56

      文章

      4797

      浏览量

      84690
    • 爬虫
      +关注

      关注

      0

      文章

      82

      浏览量

      6881

    原文标题:Python3爬虫抓取网易云音乐热评实战

    文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

    收藏 人收藏

      评论

      相关推荐

      【NanoPi Duo开发板试用体验】3、安装并运行网易音乐

      本帖最后由 jackeyt 于 2017-11-6 09:48 编辑 我们知道在手机或者电脑上想要安装网易音乐类的音乐APP,是十分容易的事情来的,我们只要在软件商店中选择相应
      发表于 11-05 20:27

      网易首款智能音箱“三音”上线京东众筹

        导读:日前,网易在京东金融平台发起“共创”活动,发动音乐爱好者共同打造其首款产品“网易三音音箱”。   7月23日9点,“网易三音
      发表于 07-28 09:29

      网易首款智能音箱“三音音箱”发布 京东众筹价799元

      优化和升级硬件、精准定制产品。   从功能和产品性能来看,该音箱于市面上其他智能音箱基本类似。较为独特的优势则是关联网易音乐。据销售页面提供的信息显示,该音箱使用的是网易
      发表于 07-28 09:30

      Python爬虫网易音乐下载

      …好了,不说废话了。这次的目标主要是根据网易云中歌手的ID,下载该歌手的热门音乐的歌词和音频,并保存到本地的文件夹中。配置基础PythonSelenium(配置方法参照:Selenium配置)Chrome
      发表于 10-12 15:11

      Linux下如何安装网易音乐

      1. 百度搜索网易音乐,打开网易音乐的官网
      发表于 07-22 08:22

      应对反爬虫的策略

      正常访问的目的,但是编写爬虫程序是很难得,尤其是根据实际情况调整程序代码,所以除了自己编写爬虫程序,现在为了能让大家更好的爬虫抓取信息,有很多专业的采集器和软件被研发出来,像亿牛
      发表于 12-12 17:39

      小米手环隔空喊话网易音乐: 敢和我合作吗?

      临近小米新品发布会,近日小米手环官方微博表示有粉丝想要网易音乐定制版手环,并向网易音乐隔空喊
      发表于 04-19 08:57 1816次阅读

      小米手环2的按扭和网易音乐的按扭一致,这是要合作吗?

      今日,小米手环官方微博发话了,隔空喊话网易音乐,都知道网易音乐不知不觉间就火了,用户量已增至
      发表于 04-24 09:01 3395次阅读

      网易音乐氧气耳机评测:129的价格到底贵在哪里?

      还是从大家喜闻乐见的开箱环节说起。网易音乐氧气耳机的外包装盒给人的第一印象是非常简约,由于它将网易
      的头像 发表于 05-02 06:52 6.1w次阅读

      网易音乐获阿里巴巴、锋基金等共计7亿美元融资

      9月6日消息,网易公司目前宣布,网易音乐获阿里巴巴、锋基金等共计7亿美元融资。据悉,此次融资为网易
      的头像 发表于 09-06 08:37 2904次阅读

      知名智能穿戴厂商华米科技正式宣布与网易音乐达成合作

      9月16日,知名智能穿戴厂商华米科技正式宣布与网易音乐达成合作。根据双方发布的合作内容显示,9月22日网易
      的头像 发表于 09-16 14:45 2040次阅读

      网易音乐指控酷狗抄袭

      网易音乐官方微博喊话酷狗音乐,表示为一直战斗在死盯网易
      的头像 发表于 02-02 11:58 1808次阅读

      网易音乐再度回应酷狗:偷梁换柱

      本周网易音乐与酷狗音乐之间的争论成为业界关注的焦点。
      的头像 发表于 02-04 15:44 2516次阅读

      版权垄断阴影下冲击上市,为何网易音乐仍被市场看好?

      网易音乐又整了新活,其所推出的“色彩声学研究室”刷屏社交网络,许多人的朋友圈都被#网易人格主导色#占据。就在
      发表于 05-31 14:17 206次阅读

      如何利用海外爬虫IP进行数据抓取

      利用海外爬虫IP进行数据抓取需要综合考虑多个方面。
      的头像 发表于 10-12 07:54 199次阅读