龙空技术网

小白都能学会的Python爬虫网易云音乐

Python智禅 140

前言:

现时看官们对“python爬音乐”都比较关心,你们都想要知道一些“python爬音乐”的相关内容。那么小编在网络上收集了一些关于“python爬音乐””的相关内容,希望同学们能喜欢,同学们快快来学习一下吧!

配置基础

python

Selenium

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

发现有很多想要学习Python却不知道如何下手的朋友,我这里整理了一些关于Python的学习资料,从基础到入门到实战都有!有需要的朋友可以关注并私信“01”免费获取...

分析

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

实验步骤:

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

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

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

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爬音乐