Python 网络爬虫实现 QQ 音乐下载

项目需求

模拟QQ音乐网页中的搜索和下载功能:

  • 输入歌手或歌名搜索出相关的歌曲列表,然后可选下载。
  • 可以将歌曲下载到本地。下载到本地的命名方式为:歌名+歌手+id。

一、首先去QQ音乐寻找音频下载接口:

随便搜索一首歌:

然后打开Chrome浏览器的开发者工具,同时点击播放歌曲:

接下来找到media类型的文件,显然我们要的音乐就是最大的那个文件,点开它:

打开这个URL:

至此,我们就成功找到了QQ音乐的音频下载接口。


二、分析音乐下载接口:

https://isure.stream.qqmusic.qq.com/C400003y3tQK2JZaau.m4a?
guid=4441071008&
vkey=6A1D99170713A9FFA58B61103D38450398E41C3ACDABF3F3E6FF170FB936B9239C1412F189015FE08484D930C1F11B39CD37EA7443CFC395&
uin=0&
fromtag=66

先分析一下这首歌的songmid参数

可以看到这首歌的songmid参数003y3tQK2JZaau,是URL的C400后面的部分。

songmid从命名角度看,是歌曲的唯一标识符

而其余的参数在音频文件上就可以找到:

三、接下来分析搜索接口:

打开搜索框,输入歌曲名字,拦截搜索请求:

接下来对该URL进行解码:

分析一下URL里面的参数,以剔除一些不必要的参数:

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?
ct=24&
qqmusic_ver=1298&
new_json=1&
remoteplace=txt.yqq.top&
searchid=35829660933924128&
t=0&
aggr=1&
cr=1&
catZhida=1&
lossless=0&
flag_qc=0&
p=1&
n=10&
w=你要相信这不是最后一天&
g_tk_new_20200303=1944343149&
g_tk=1944343149&
loginUin=0&
hostUin=0&
format=json&
inCharset=utf8&
outCharset=utf-8&
notice=0&
platform=yqq.json&
needNewCode=0

这里发现搜索的关键字就是w参数

剔除不必要的参数之后,如下:

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w=歌曲或歌手名称


四、通过搜索接口提取信息:

import requests
import json

headers = {
   
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值