Python爬虫怎么实现下载网易云音乐 - 大数据

博主:xiaoweixiaowei 2023-01-18 条评论

这篇文章主要介绍“Python爬虫怎么实现下载网易云音乐”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python爬虫怎么实现下载网易云音乐”文章能帮助大家解决问题。

  Selenium(配置方法参照:Selenium配置)

  Chrome浏览器(其它的也可以,需要进行相应的修改)

  解析

  以前抓取过网易云网页的朋友可能都清楚网易云有反爬虫策略的,post时要对部分信息的参数完成加密函数的模拟。为了方便,入门新手也可以了解,直接采用Selenium来模拟登录,之后用接口来下载音乐和歌词。

  实验步骤:

  通过歌手id得到当前歌手的热门歌曲信息,歌名与网址,并且存储到CSV文件里面;

  载入csv文件,通过音乐链接,获取歌曲ID,之后借助相应的接口,下载歌曲和歌词;

  将歌曲和歌词存储到本地。

  Python实现

  这里针对几个主要的函数来说明…

Python爬虫怎么实现下载网易云音乐 - 大数据

  抓取歌手信息

  通过Selenium就不用看对页面的请求了,能直接从页面源代码中提取对应的数据,查看歌手网页源代码能够看到在iframe框架里有我们需要的信息,因此,要先切换到iframe:

  browser.switch_to.frame('contentFrame')

  接着看下去,在id=”hotsong-list”标签中能看到需要的歌名以及链接,然后每一行对应的是一个tr标签。因此先取得全部的tr内容,然后遍历单个tr。

  data = browser.find_element_by_id("hotsong-list").find_elements_by_tag_name("tr")

  注意:前一个是find_element,后一个是find_elements,后者返回一个列表。

  然后就是解析单个tr标签的内容,得到歌名与链接,可以发现两者在class=”txt”标签中,而且链接是href属性,名字是title属性,能直接通过get_attribute()函数获取。

  链接中的数字就是歌曲的id,因此我们得到歌曲id后,能够同时从该链接下载歌词,歌词文件是json格式,因此我们还要用到json包。

  并且同时获取的歌词中,每行有一个时间轴,还要用正则表达式来去除,完整代码如下:

  链接中的数字为歌曲的id,可以直接根据歌曲的id来下载音频文件。完整代码如下:

关于“Python爬虫怎么实现下载网易云音乐”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注云行业资讯频道,小编每天都会为大家更新不同的知识点。

The End

发布于:2023-01-18,除非注明,否则均为 主机评测原创文章,转载请注明出处。