40行代码用python实现酷我音乐爬虫
不多说直接上代码:
首先去到酷我音乐官网:
在搜索栏里输入要爬取歌手的名字:
来到这个页面右键检查:
按下图方式顺序点击:
可以看到这里的响应response里存的是一个json格式的文件,接下来我们来解析一下这个json
把这个response响应copy到一个json文件里进行格式化,再依次展开:
发现在这个’list’里存了这一页的全部歌曲信息,再继续展开其中的一首歌曲 :
这里可以找到歌曲的rid和歌曲name,这两个信息是有用的,rid是用来帮我们定位到歌曲所在的mp3文件,name用与下载歌曲时对歌曲进行命名。
再回到刚才的页面:
发现这个url获取的响应中存着歌曲的播放地址(也就是mp3文件的url),可以直接把这歌url复制到地址栏请求,会去到一首歌曲的播放界面:
那么改变不同的rid自然就得到不同的歌曲的url,然后我们直接请求这些url,获取到的响应就是这个mp3文件,用二进制的方式储存到本地就可以用任意播放器打开并播放,你也可以把你的程序打包成exe文件,发给你的小伙伴使用哦。
这里我们总共请求了三种url:
一:存储当前页面歌曲信息(rid和name等)的
二:存储某一rid对应歌曲url播放地址的
三:歌曲自身的
我们请求时一定要加上请求头不然是获取不到信息的:
将这里的request headers用一个字典保存在代码里(如果怕麻烦的话用笔者的也是可以的)。
下面的key对应你搜索的关键字,pn代表页数,rn是每页的歌曲数,我们可以自主修改来获取不同歌手的歌曲和歌曲数量:
总体的思路还是比较清晰的:请求存放歌曲信息的url(这个url可以改变搜索的关键字和页数来获取不同歌手的歌曲和数量),请求存放歌曲播放地址的url(这个url通过改变rid的值来获取不同的歌曲播放地址),请求歌曲mp3文件的地址(获得二进制响应并保存到本地)。
需要掌握如下技能:python基础语法及基本数据类型,request库的简单使用。
如有错误纰漏,感谢联系指正。
如有侵权,联系删除。
