Python爬虫-QQ音乐下载

代码效果

Github源码在这里

代码的效果其实和上一篇网易云音乐的爬取是一模一样的

先搜索歌名或者歌手 找到想要下载的编号 输入编号下载即可

上一篇 网易云音乐下载

相比于网易云音乐 QQ音乐简直太渣了(专指加密)

第一点:QQ音乐都是get请求 没有post请求 不需要传入一些奇葩的参数 所以比较简单

第二点:QQ音乐下载过来是m4a格式 而网易云是MP4 (源文件就是这样)  只能说网易云更良心 m4a格式牺牲了音质 节省了空间 当然 我这样的木耳也听不出来啥区别 就是MP4常见一点

第三点:QQ音乐没有使用复杂的RSA、AES加密算法 下面是TFBOYS的《喜欢你》的文件地址 复制打开 就是音频文件 vkey就是加密的参数 看似这个串数字加密过 挺难获得 其实也是写在json里的 直接拿 贴上就行了

http://dl.stream.qqmusic.qq.com/C400001VySE80MYPrC.m4a?vkey=A43C8A65EED5DD07B6F5BF0DFDA934FBA0993658AF76F1C70693F679972D0B074E5FC3D91E480605D99AFE6D5CEEDD6BD3722C78E3505D72&guid=6800588318&uin=0&fromtag=66

PS:为什么拿这首歌举例子 纯粹是搜索里第一个 顺手就点了

下面详细讲解了QQ音乐的抓取

1.先进入搜索页搜索 仍以“喜欢你”为例

2.F12 F5 抓包 一下子就找到目标文件(其实花了好久 一个一个找下来的) 基本就是json文件 不是json 一般一看就不是

点击Headers 获得地址 这个地址非常非常的长 其实就是一些参数的拼接 然后就会没有用的参数是可以参数的 一个一个删掉测试下内容会不会发生变化 没用的就扔掉

删减后的url变成https://c.y.qq.com/soso/fcgi-bin/client_search_cp?aggr=1&cr=1&p=1&n=20&w=%E5%96%9C%E6%AC%A2%E4%BD%A0

看吧 很多参数都没用 有用的就那么几个 其中说明下w参数 w就是搜索的内容 可作任意替换

尤其是中文搜索要做编码处理 quote()函数一下

3.这样就获得每首歌曲的详细信息

这里举例打印出歌名、作者、专辑、时长

这里有两个细节

一:作者(歌手)有多歌手的情况 这里首先遍历所有的歌手信息 获取后 用join()串在一起

二:数据中的歌曲时长是秒单位的 这里使用divmod函数转化后X分X秒

打印歌曲信息

4.拿到搜索的列表 定位某一首歌的url 找之前提过的下载地址

搜索列表中随便点击一首歌 进入 点击播放 进入音乐播放器 F12 F5 抓包

找到了之前提到过的音频文件的url 发现关键参数vkey vkey是从哪里的来的

找啊找啊 终于找到了  就在这摆着  这也太太太放心了  网易云好歹加了好几层密

同样点击Headers 又是一非常非常非常长的url  删删删 删掉那些没有的参数

最后精简为

https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381&cid=205361747&songmid=001VySE80MYPrC&filename=C400001VySE80MYPrC.m4a&guid=6800588318

同样的方法  拿好几首歌来测试下 观察哪些参数发生了变化

其实就只变换一个参数songmid ,filename参数值就是songmid前缀增加C400

构造通配表达式

https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381&cid=205361747&songmid=%s&filename=C400%s.m4a&guid=6800588318' % (  media_mid, media_mid)

midia_mid从何而来  之前不是找过歌曲的详细信息 这里什么没有啊  果然在里面 获取即可

总结下 就是先获得media_mid 构造一个url 得到vkey 再使用vkey构造第二个url 即可获取音频文件的源地址了

PS:第二个url不要像之前操作一样 再删掉没用的参数 力求精简 这里实测遇到一个小坑

        测试的时候 确实删掉了uin和fromtag这两参数 网址是能打开播放的 但是爬虫requests的时候 下载过来 音频已损坏 无法播放  怀疑自己 怀疑人生 最后参数不删除 放回去 终于下载的音频能播放

5.最后写个run函数 就可以哪首想听 搜哪首

PS:细节 如果歌曲已下架 返回的音频文件的vkey是NULL 所以要加一个判断 如果vkey是null的话 就不用构造url了  如果vkey是null不做判断的话 会继续构造下载url 而这个url里的vkey是null 下载过来 啥的没有

END

Github源码在这里

最后就是愉快的 哪首想听 搜哪首 下哪首

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容