admin 管理员组文章数量: 1184232
目标
这次要爬取的是qq音乐网站【排行榜】中所有的歌曲(共100首)
网址:https://y.qq/n/yqq/toplist/4.html#stat=y_new.top.pop.logout
废话不多说,直接开始吧!
接口分析
点击排行榜页面中的任意一首歌,进入到播放界面。
打开开发者工具,重新刷新网页,寻找歌曲下载接口
找呀找,找呀找
发现许多media类型的,选择size最大的那条,点击进去。
果然,找到了歌曲下载的url:
http://124.232.155.149/amobile.music.tc.qq/C400101A9o5D1EWzyd.m4a?guid=5300073565&vkey=30F12E95C394B1C0550AAAC8E946191E757BB8190B983FA1E13E7C0EEF6CE49AC1C051CB2922C371F7EBA77B8C36DA7F0BB3D85819525C75&uin=0&fromtag=66
然后,分析下这个url的构造:
和其他的歌曲对比,只有m4a文件名和vkey这两个参数不一致
所以,我们要找的就是这两个参数。
那么到底从何而来呢?
又找啊找,找啊找
终于发现了!找到了vkey!
接着找m4a文件名
找啊找,找啊找
咦!好像有新发现!
purl中好像已经包含了m4a文件名和vkey!
没错,就是purl了!
实际上,歌曲下载的url就是 http://124.232.155.149/amobile.music.tc.qq/+purl
接下来,就是要分析purl是怎么来的了
分析请求的url:
还是老办法,和其他的歌曲对比。(此处省略复杂繁琐对比。。。)
发现只有songmid这个参数不一致
所以,要分析的就是songmid是从哪个接口过来的。
再次回到排行榜页面
找啊找 找了很久 终于发现了!
最后,再分析下songmid的请求url:
https://c.y.qq/v8/fcg-bin/fcg_v8_toplist_cp.fcg?tpl=3&page=detail&date=2018-12-14&topid=4&type=top&song_begin=0&song_num=30&g_tk=5381&jsonpCallback=MusicJsonCallbacktoplist&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0
song_num是指定请求多少条数据。
由于我们要下载所有的歌曲(共100首),所以要将song_num改成100
完整代码
#目标:下载qq音乐排行榜前100首
#思路:
#1.歌曲下载链接url1:http://124.232.144.154/amobile.music.tc.qq/C400101A9o5D1EWzyd.m4a?guid=5300073565&vkey=B1A12B2E4190CB21134F652893BEEF69AE405D39E060DEEACF358A6F729541E160F926F5EADD391C68047B2ED0156690A97CA50AC99DA40D&uin=0&fromtag=66
#2.寻找下载链接中的参数filname:C400101A9o5D1EWzyd.m4a vkey
#3.filname与vkey的请求链接url2:https://u.
版权声明:本文标题:python爬虫-批量下载qq音乐 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765876183a3422655.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论