前两篇文章收集了歌手信息和歌词,光有歌手信息和歌词没有歌曲怎么行,那不是耍流氓吗?正好今天周末,给大家发点福利,喜欢听音乐的同学有福了,这篇文章直接把网易云音乐歌手的热门歌曲 50 首全部免费下载下来。除了已经下架不在网易数据库的,其他的都能全部下载下来,咳咳,你懂的。给几张图,自己体会。
爬取结果:
直接下载:
但是个别几首歌如果已经下架的话,可以下载下来,但是听不了的,下架的歌曲毕竟是少数。
这次的代码很简单,因为上 2 篇文章已经把大部分前期工作做完了,还没上车的同学请戳以下两篇文章:
前面没弄懂的也没关系,文章底部会把前面两次的源码和爬虫结果文件的获取方式给出。
导包
之前的代码完成后,我们把它放在同一个目录下是可以直接导入并调用其方法的。务必要放在同一文件夹下面,这样调用才不会报错。本次我需要调用上次获取歌词的 lyrics163.py 文件,因为里面的 get_top50() 方法返回的信息有本次需要的歌曲 id。
用网页上显示的链接直接下载歌曲不可行。众里寻他千百度,终于被我找到了网易提供的外部的歌曲链接,输入相应歌曲的 id 拼接获取歌曲外部可下载的链接。
Python
songurl = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(songid)
1
songurl = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(songid)
下载歌曲
接下来就简单了,定义一个下载歌曲的函数就可以下载歌曲了。用 urlretrieve 下载音频文件,调用时入参填歌曲 url 和存放路径即可。
主函数
主函数,输入歌手对应的 id ,直接调用之前的保存歌词源码 lyrics163.py 里的方法获取歌曲 id,再调用上面的方法下载歌曲即可。保存路径提前建好,比如我在 E 盘新建了「song」目录,下载的歌曲都会保存在这个目录下。
这样,你想听哪个歌手的歌曲,输入歌手 id,运行此代码,分分钟 50 首热门歌曲下载到本地。是不是很轻松?
这波福利如何?赶紧转发分享给你的朋友们,让他们也享受这份音乐福利,因为一旦网易关闭这个外部下载链接,这个方法就不能下载歌曲了,当然,土豪请随意,哈哈!
公众号回复「歌曲」可获取:
1 第一次文章获取歌手信息的源码和热门歌手信息.csv文件
2 第二次文章的获取歌词文件的源码。
3 本篇文章的源码。
操作步骤:
1 运行 singer163.py 代码获取热门歌手信息,或者直接用我发的,效果一样。
2 运行 song 163.py 代码,从热门歌手信息文件查出你想下载歌曲的歌手 id,输入id,歌曲就保存在你定义的文件夹里了。
3 如果想下载歌词的话,运行 lyrics163.py 代码即可。