爬取网易云音乐“三部曲”(三):轻松下载网易音乐歌曲!
本文是承接前两文章而来,前两篇文章我们收集了歌手信息和歌词,可是光有歌手信息和歌词没有歌曲怎么行,没有歌曲怎么知道音调,这让人怎么学?怎么听?这不耍流氓嘛?为了向大家证明小编不是耍流氓,是耍无赖,我决定教大家直接把网易云音乐歌手的热门歌曲全部免费下载下来。除了已经下架不在网易数据库的,其他的都能全部下载下来,咳咳,你懂的。给几张图,自己体会。
爬取结果:
直接下载:
但是个别几首歌如果已经下架的话,可以下载下来,但是听不了的,下架的歌曲毕竟是少数。
这次的代码很简单,因为上 2 篇文章已经把大部分前期工作做完了,还没上车的同学请戳以下两篇文章:
Python 爬虫获取网易云音乐歌手信息
Python 爬虫获取网易云音乐歌手歌词
前面没弄懂的也没关系,文章底部会把前面两次的源码和爬虫结果文件的获取方式给出。
导包
之前的代码完成后,我们把它放在同一个目录下是可以直接导入并调用其方法的。务必要放在同一文件夹下面,这样调用才不会报错。本次我需要调用上次获取歌词的lyrics163.py 文件,因为里面的 get_top50() 方法返回的信息有本次需要的歌曲 id。
用网页上显示的链接直接下载歌曲不可行。众里寻他千百度,终于被我找到了网易提供的外部的歌曲链接,输入相应歌曲的 id 拼接获取歌曲外部可下载的链接。
songurl = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(songid)
下载歌曲
接下来就简单了,定义一个下载歌曲的函数就可以下载歌曲了。用 urlretrieve 下载音频文件,调用时入参填歌曲 url 和存放路径即可。
主函数
主函数,输入歌手对应的 id ,直接调用之前的保存歌词源码 lyrics163.py 里的方法获取歌曲 id,再调用上面的方法下载歌曲即可。保存路径提前建好,比如我在 E 盘新建了「song」目录,下载的歌曲都会保存在这个目录下。
这样,你想听哪个歌手的歌曲,输入歌手 id,运行此代码,分分钟 热门歌曲下载到本地。是不是很轻松?
是不是觉得很爽?是不是很想试试,快来动手吧!好的东西应该免费分享给大家,快举起你那天使般的小手,点波转发吧!当然,土豪就请随意咯!
写在最后:
如果大家在学习Python的路上,或者打算学习Python需要学习资料,可以在评论区留言1314,小编将免费赠送大家学习资料喔!
本文来自网络,如有侵权,请联系小编删除!