酷我音乐爬取 -- python

本文详细介绍了如何使用Python爬取酷我音乐的歌曲地址。首先找到歌曲地址的规律,通过删除部分参数简化URL。接着,通过分析页面源代码和请求头,获取排行榜歌曲的rid。设置特定请求头后,成功获取到包含rid和歌名的数据,并解析出所需信息。最后,通过改变rid的值,实现动态获取不同歌曲的地址。
摘要由CSDN通过智能技术生成


目标:爬取酷我排行榜: http://www.kuwo.cn/rankList

获取歌曲地址:即 mp3 文件地址
1、地址在哪?

随便播放一首歌比如:

http://www.kuwo.cn/play_detail/96596360

发现歌曲地址在:

http://www.kuwo.cn/url?format=mp3&rid=96596360&response=url&type=convert_url3&br=128kmp3&from=web&t=1588644908796&reqId=3e2308f0-8e76-11ea-8d1e-e3a5379bd1fc

在这里插入图片描述

通过请求发现可以删掉一些变成这样:

http://www.kuwo.cn/url?format=mp3&rid=96596360&response=url&type=convert_url3
2、寻找规律

再播放一首歌:

http://www.kuwo.cn/play_detail/96968346

歌曲地址在:

http://www.kuwo.cn/url?format=mp3&rid=96968346&response=url&type=convert_url3

对比上面两首歌发现只有rid不一样。
那可以改变rid来获取不同的歌曲

3、获取rid

播放歌曲的时候地址栏就有rid,说明在排行榜页就可以得到rid

查看网页源代码,搜索排行榜的一首歌的rid,比如:96968346,搜索没有。

那就看看是不是json数据,刷新排行榜,发现

在这里插入图片描述

http://www.kuwo.cn/api/www/bang/bang/musicList?bangId=93&pn
对于爬取酷我音乐的问题,可以使用Python来实现。根据提供的引用内容,可以看出代码中使用了Python的requests库和pyquery库。其中,getRanklist函数用于获取榜单歌曲信息,getSongurl函数用于组装歌曲信息页面的URL,getRankTypeNamelist函数用于获取不同榜单的名称和ID。 首先,需要导入requests和pyquery库。然后,可以创建一个函数getRanklist来获取榜单歌曲信息。这个函数接受两个参数:rankType(榜单类型)和bangid(榜单ID)。在函数中,需要设置请求头headers,并构建请求URL。通过发送GET请求,获取到返回的HTML页面内容。接着,使用pyquery库来解析HTML页面,并提取出歌曲信息。最后,可以将获取到的歌曲信息打印出来。 接下来,可以创建一个函数getSongurl来组装歌曲信息页面的URL。这个函数接受一个参数songid(歌曲ID)。在函数中,需要构建基础URL,并将songid拼接到URL中。返回组装后的URL。 最后,可以创建一个函数getRankTypeNamelist来获取不同榜单的名称和ID。在函数中,同样需要设置请求头headers,并发送GET请求获取HTML页面内容。使用pyquery库解析HTML页面,并提取出榜单名称和ID。可以将获取到的榜单名称和ID打印出来。 这样,就可以使用这些函数来实现爬取酷我音乐的功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python爬虫(20)获取酷我音乐排行榜榜单作品](https://blog.csdn.net/qiqiyingse/article/details/83343752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值