网易云电脑版如何下载歌词(Python爬取网易云音乐下载教程)

首页教程更新时间:2023-06-07 03:34:10

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(1)

配置基础

Python

Selenium

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

分析

如果爬取过网易云的网站的小伙伴都应该知道网易云是有反爬取机制的,POST时需要对一些信息的参数进行加密函数的模拟。但是这里为了简便,小白也能理解。直接使用了Selenium来模拟登录,然后使用接口来直接下载音乐和歌词。

实验步骤:

根据歌手ID获取该歌手的热门歌曲列表,歌曲名称和链接,并保存到csv文件中;

读取csv文件,根据歌曲链接,提取歌曲ID,然后利用相应的接口,下载音乐和歌词;

将音乐和歌词保存到本地。

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(2)

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()函数获取。

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(3)

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(4)

下载歌词

网易云有个获取歌词的接口,链接为:http://music.163.com/api/song...

链接中的数字就是歌曲的id,所以我们拥有歌曲id后,可以直接从该链接下载歌词,歌词文件是json格式,所以我们需要用到json包。

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(5)

而且直接获取的歌词中,每行有一个时间轴,需要用正则表达式来剔除,完整代码如下:

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(6)

下载音频

网易云也提供了音频文件的接口,链接为:http://music.163.com/song/med...

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

网易云电脑版如何下载歌词,Python爬取网易云音乐下载教程(7)

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
Yasa宠物医院
Yasa宠物医院
下载
萝莉大战僵尸360版
萝莉大战僵尸360版
下载
机智100
机智100
下载
小码精灵v1.12.1官方版
小码精灵v1.12.1官方版
下载
暗黑猎人OLios版
暗黑猎人OLios版
下载
天一智能脚本v3.9b免费版
天一智能脚本v3.9b免费版
下载
三界前传全新版2.3
三界前传全新版2.3
下载
票动力app
票动力app
下载
平台高尔夫
平台高尔夫
下载
超级星球手游
超级星球手游
下载
超级萌跑
超级萌跑
下载
帮忙打字赚钱
帮忙打字赚钱
下载
超级飞侠学画画
超级飞侠学画画
下载
模拟人生4粉色独角兽主题咖啡店MOD
模拟人生4粉色独角兽主题咖啡店MOD
下载
微信群微商导航
微信群微商导航
下载
环世界B18菜园子工具MOD
环世界B18菜园子工具MOD
下载