Python下载网易云歌曲(版权限制的怎么播放和下载呢?)
为什么要这样下载
网易云音乐,我相信大多数人都用过,我个人觉得非常好用,也一直在用,有的时候,我们搜索一些网易歌曲,发现播放不了,甚至下载不了,因为提示“版权方要求,当前歌曲仅限开通音乐包使用”(见下图),也就是,需要购买才能够下载以及播放,有没有办法不花钱就能播放和下载这首歌曲呢?我研究了一下,还没发现呢,哈哈哈哈,往下看,你会发现惊喜的……
怎么查找版权限制不让下载和播放的音乐
初探network请求信息
首先,我想到的是打开F12,查看所有的network请求,一个一个的查看请求返回信息,突然发现了惊喜,如下图所示:
那个请求返回的url,我想应该就是音乐的URL源地址,但是,我通过Python脚本下载这个音乐下来后发现,和我想象的有点不一样,因为这个url确实是音乐的源地址,但是并不是我需要的,因为这个url是当前播放音乐的源地址,然后,我继续点击其他按钮,当我点击播放音乐按钮的时候,有一个detail的请求,里面返回了很多信息,如下图所示:
深入查看network请求信息
我研究了一下这些返回信息,发现并没有找到需要的音乐url源地址,然后只能继续在network里面找,刚开始,我只是找的XHR的请求,然后我想着,查找All的请求试试,因为,All请求里,可以包含所有的资源请求,包括图片以及文件资源等,也许会有惊喜,果然,不出所料,让我找到了一个好东西,如下图这样的:
发现惊喜
因为通过前面拿到当前播放的音乐的url源地址,猜想着所有的音乐的url应该都包含着mp3的后缀,所以,我就Ctrl+F,进行mp3的搜索,果然,看到包含mp3的请求就那几个,然后逐一分析,发现,有一个请求信息,也就是上图中的第一个请求,是一个MP3文件资源,所以,我猜想,这个应该就是我需要的音乐URL了吧,然后我拿到这个URL继续去下载文件资源,果然,这就是我需要的音乐URL源地址,到这里,也就是找到了这个因为版权受限不让播放和下载的音乐了,惊不惊喜?意不意外?
Python下载MP3文件源码
最后,分享一波Python下载MP3资源的源码,使用的时候,得先进行几个配置,首先是url,url就是需要下载的音乐URL地址,folder就是音乐需要保存的位置,话不多说,直接上源码
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 下载MP3文件 author: gxcuizy time:2018-08-08 """ import requests import os def download_file(mp3_url, file_folder): """下载MP3文件""" # 文件夹不存在,则创建文件夹 folder = os.path.exists(file_folder) if not folder: os.makedirs(file_folder) # 读取远程MP3资源 res = requests.get(mp3_url) res.raise_for_status() # 获取文件名 file_name = os.path.basename(mp3_url) file_path = os.path.join(file_folder, file_name) print('正在写入资源文件:', file_path) # 保存到本地 image_file = open(file_path, 'wb') for chunk in res.iter_content(100000): image_file.write(chunk) image_file.close() print('写入文件结束!') # 程序主入口 if __name__ == "__main__": # MP3源地址url url = 'http://m10.music.126.net/20180808172234/4446d41c850238c25cdcff1fe43249a4/ymusic/3686/b5b4/961c/39c9a20e7db813ea3290e1b1580cfa70.mp3' # MP3保存文件夹 folder = 'mp3/' # 调用下载方法 download_file(url, folder)
结束语
大家有什么不理解或者不明白的的,可以联系我,或者给我留言,我会及时回复的,欢迎沟通和交流,谢谢。