脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 我是如何利用Python下载酷狗音乐的

我是如何利用Python下载酷狗音乐的

2021-07-28 00:52Python爬虫与数据挖掘Python进阶者 Python

现在的听歌软件动不动就是各种付费,要下载软件才能听,当你下载了之后,你会惊奇的发现这首歌还收费,于是,小编冥思苦想,终于让我发现了其中的奥秘,一起来看看吧。

我是如何利用Python下载酷狗音乐的

大家好,我是Python进阶者。

前言

现在的听歌软件动不动就是各种付费,要下载软件才能听,当你下载了之后,你会惊奇的发现这首歌还收费,这就让一向喜欢白嫖的小编感到很伤心了。于是,小编冥思苦想,终于让我发现了其中的奥秘,一起来看看吧。

项目准备

编辑器:Sublime Text 3

浏览器:360浏览器

项目目标

下载我们喜欢的音乐

项目实现

1.打开酷狗音乐官网,360浏览器打开酷狗音乐官网,如下图所示。

我是如何利用Python下载酷狗音乐的

可以看到十分清爽的画风,这也是我比较喜欢的地方。

2.审查元素,分析请求。打开Network ,分析请求,我们可以看到:

我是如何利用Python下载酷狗音乐的

从上图可以看出,这是请求的参数,所以我们可以使用Requests模块对它发起请求。

3.模拟发起请求。我们从网页中得知它的地址为:

  1. https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord=%E4%B8%8D%E8%B0%93%E4%BE%A0 

可以看到真正对于我们来说有用的就只有SearchKeyWord参数后的值,前面的搜索类型默认填写即可,所以我们可以这样:

  1. import requests 
  2. headers={ 
  3. 'accept''*/*'
  4. 'accept-encoding':'gzip, deflate, br'
  5. 'accept-language''zh-CN,zh;q=0.9'
  6. 'cookie''kg_mid=ebb2de813317a791bcf7b7d3131880c4; UM_distinctid=1722ba8b22632d-07ac0227c507a7-4e4c0f20-1fa400-1722ba8b2284a1; kg_dfid=0Q0BEI47P4zf0mHYzV0SYbou; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1590041687,1590280210,1590367138,1590367386; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1590367431'
  7. 'referer''https://www.kugou.com/yy/html/search.html'
  8. 'sec-fetch-mode''no-cors'
  9. 'sec-fetch-site''same-site'
  10. 'user-agent''Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' 
  11. aa=input('请输入歌名:'
  12. data={ 
  13. 'callback''jQuery112408716317197794392_1590368232677'
  14. 'keyword':aa, 
  15. 'page''1'
  16. 'pagesize':'30'
  17. 'userid':'-1'
  18. 'clientver'''
  19. 'platform''WebFilter'
  20. 'tag''em'
  21. 'filter''2'
  22. 'iscorrection''1'
  23. 'privilege_filter''0'
  24. '_''1590368232679'
  25. res = requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=4) 
  26. print(res) 

这样就实现了模拟请求,我们来验证下:

我是如何利用Python下载酷狗音乐的

可以看出它成功打印出了和我们上面一模一样的地址。

4.获取音乐文件列表

  1. rep=requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=5) 
  2. print(rep.url) 
  3. res=requests.get(rep.url,timeout=4) 
  4. print(res.text) 

当我们将请求地址填写正确后,我发现竟然内容与预期不相符,但是请求地址对的一批。

我以为是这样的结果:

我是如何利用Python下载酷狗音乐的

实际上的结果:

我是如何利用Python下载酷狗音乐的

可以看到差距很大,而且用Json也根本获取不到,报格式错误,说明不是一个Json,看来这比QQ音乐难度高点。不过我们今天要下载的是音频文件,所以暂时跳过,不管它。

5.下载音频文件。我们在搜索后弹出来的列表中选择原唱曲目,进去听一下:

我是如何利用Python下载酷狗音乐的

我选择第一首,打开是这样,我们开始骚操作,打开Network:

我是如何利用Python下载酷狗音乐的

我们输入后缀Mp3,然后定位到对应的请求,然后打开它的请求结果,可以看到一个Json结果:

我是如何利用Python下载酷狗音乐的

我们将Json结果粘贴到控制台,可以看到里面有一段关于Mp3的结果,不过添加了点干扰符号,我们把它提取出来:

我是如何利用Python下载酷狗音乐的

这样我们就可以把酷狗音乐的歌曲下载下来了。

项目总结

其实,酷狗音乐与QQ音乐不同,其实酷狗音乐的下载链接更好捕获,你可以直接在它的播放界面捕获到:

我是如何利用Python下载酷狗音乐的

模拟请求这个界面,一切都搞定了。

原文链接:https://mp.weixin.qq.com/s/uC8IXVTQ2R8O0mhuyA_gXQ

延伸 · 阅读

精彩推荐