美文网首页
python下载网易云音乐(二)

python下载网易云音乐(二)

作者: 江山画_孤影 | 来源:发表于2017-03-20 21:13 被阅读0次

准备

工具:python 3.5,pycharm

类库:requests库

示范歌单

一张轻音乐歌单,一共包含了50首歌曲

QQ截图20170320191532.png

导入模块

from urllib.request import urlretrieve
import requests

关于这两个模块的功能用到时会具体介绍,为了方便起见,下面把请求头省略了,
因为比较长,但是放弃它对于功能的实现影响不大。

发送请求

r = requests.get('http://music.163.com/api/playlist/detail?id=606061417')

我们用requests.get()来进行网络请求,获取它的响应流文件
(你可以想象成GET在说:喂,网络服务器,请按照这个网址给我信息)

这里要注意了,我们请求的网址其实和歌单图片中的那个网址是不同的,你可以把这里的网址复制到浏览器中看一下,浏览器会显示这样的画面

QQ截图20170320200451.png

你有没有发现这里出现了那个让我们众里寻她千百度的'mp3Url'

JSON解析

arr = r.json()['result']['tracks']

为什么是json ?json的格式数据是这么写的
{"user":{"firstname":"Ryan","lastname":"Mitchell","username":"Kludgist"}}

网易云API返回给我们的数据是JSON格式。

总结一下
第一行代码:获取到JSON格式的数据
第二行代码:用JSON解析数据

批量下载

for i  in range(1,51): 
    try:
        name = arr[i]['name']
        link = arr[i]['mp3Url']
        path = 'C:\\' + name +'.mp3'
        urlretrieve(link,path)
        i += 1
        print(link)
    except:
         pass

1.link = arr[i]['mp3Url']怎么理解?

是不是有50首歌,每首歌都有这样的数据包括:picUrl , img1v1Url, mp3Url
但是我们要的是mp3Url,所以最后link是不是就代表了每首歌的下载链接

2.urlretrieve()两个参数,一个Url,一个是Path,这个函数的功能就是把网链的内容下载到你的本地,你给它picUrl,它就下载图片;你给它mp3Url,它就下载歌曲

3.try,except 用来检测异常,付费歌曲会自动跳过

完整代码

QQ截图20170320195249.png

运行结果

QQ截图20170320210700.png

结语

学到这里你已经可以把网易云客户端卸载了.但是这只是简单的处理了一个歌单的所有歌曲,那么怎么把多个歌单的歌曲导入到本地呢?请看下一篇

相关文章

网友评论

      本文标题:python下载网易云音乐(二)

      本文链接:https://www.haomeiwen.com/subject/yqpinttx.html