Python学习快车

爬取网易云音乐“三部曲”(三):轻松下载网易音乐歌曲!

2019-01-10  本文已影响27人  松珏

本文是承接前两文章而来,前两篇文章我们收集了歌手信息和歌词,可是光有歌手信息和歌词没有歌曲怎么行,没有歌曲怎么知道音调,这让人怎么学?怎么听?这不耍流氓嘛?为了向大家证明小编不是耍流氓,是耍无赖,我决定教大家直接把网易云音乐歌手的热门歌曲全部免费下载下来。除了已经下架不在网易数据库的,其他的都能全部下载下来,咳咳,你懂的。给几张图,自己体会。

爬取结果:

直接下载:

但是个别几首歌如果已经下架的话,可以下载下来,但是听不了的,下架的歌曲毕竟是少数。

这次的代码很简单,因为上 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,小编将免费赠送大家学习资料喔!

本文来自网络,如有侵权,请联系小编删除!

上一篇下一篇

猜你喜欢

热点阅读