只需几分钟!用python爬取付费歌曲!

Python客栈

共 1345字,需浏览 3分钟

 ·

2023-01-03 22:47

文 | ssw

来源:Python 技术「ID: pythonall」

有小伙伴说怎么爬取付费的音频

这里分享一个脚本或者说思路,免费下载VIP歌曲。

本人喜欢韩国TARA组合的“lovey dovey”,少女时代的“Gee”,张韶涵的“欧若拉”。

这几首在酷我、酷狗、QQ音乐都只能播放60秒试听片段,就算充了会员,也只有在会员期限内可以听。

所以呢,今天就利用爬虫来免费下载想听的付费音乐。

文章较短,建议看完全文,下载链接怎么找到的,没人跟你说估计难找到。

开始我也摸不着头脑,寻找过程应证了一句话“魔鬼藏在细节中”。

这是用脚本下载的付费歌曲:

顺便说一句,

代码中tkinter这种GUI模块操作起来繁琐,一段小功能需要一长串的代码,很像面向过程,所以我基本不碰它😅

不废话

从URL开始

search_url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?'

脚本里的这个地址怎么来的呢?其实就是网页上的搜索框。

打开酷我官网,输入“Lovey Dovey”并回车,出现url

它包括请求参数key,httpsStatus等。

脚本里对url发起请求,并在tkinter中显示搜索结果,就是这一段

输出的歌曲信息,如下图所示

验证歌曲信息

加一行打印item_text,然后左键点击tkinter中的歌曲信息,我们在pycharm的输出中可以直观的看到相关的歌曲内容

魔鬼藏在细节中之“绕过下载按钮”

有了歌曲信息,下一步是获取歌曲的下载链接。这个链接又藏在哪个旮旯里?

如果直接选择“下载歌曲”,会弹框让你下载客户端

这个时候重点来了,点击第一首歌的播放按钮

会提示“该歌曲为付费歌曲”,播放不了,同时下方未出现网络请求:

那么我们换一首免费的,点击第三首的播放按钮。免费的歌曲能播放,并且会自动添加到播放列表中:

然后刷新网页,下载链接出现了,并且能看到响应数据中有个mp3结尾的链接,就是它了!

这个下载链接就是播放列表中,最新播放的歌曲!

前面已经拿到了所有歌曲的信息,包括付费歌曲,按下载链接的格式去发送请求,写入文件就可以了

music_url = 'http://www.kuwo.cn/api/v1/www/music/playUrl?mid={}&type=convert_url3' \
      '&httpsStatus=1&reqId={}' \
  .format(song_rid, songs_req_id)

我们测试一下,脚本下载好的少女时代“Gee”用QQ音乐打开,弹框说“歌曲需付费”

看来这首歌是真的VIP会员歌曲。

本文是由 Python技术 公众号粉丝 ssw 投稿,欢迎大家继续踊跃投稿!





1、7个极其重要的Pandas函数!

2、那些有趣好玩强大的Python库

3、5 分钟,教你用 Python 制作一个生日提醒!

4、教你用 Python 自制简单版《我的世界》

5、为什么Python不适合写游戏?

点击关注公众号,阅读更多精彩内容

浏览 80
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报