当前位置:网站首页>一篇文章教会你使用Python网络爬虫下载酷狗音乐
一篇文章教会你使用Python网络爬虫下载酷狗音乐
2020-11-06 20:53:00 【Python进阶者】
【一、项目背景】
现在的听歌软件动不动就是各种付费,要下载软件才能听,当你下载了之后,你会惊奇的发现这首歌还收费,这就让一向喜欢白嫖的小编感到很伤心了。于是,小编冥思苦想,终于让我发现了其中的奥秘,一起来看看吧。
【二、项目准备】
1、编辑器:Sublime Text 3
2、软件:360浏览器
【三、项目目标】
下载我们喜欢的音乐。
【四、项目实现】
1、打开酷狗音乐官网
360浏览器打开酷狗音乐官网:

可以看到十分清爽的画风,这也是我比较喜欢的地方。
2、审查元素,分析请求
打开Network ,分析请求,我们可以看到:

从上图可以看出,这是请求的参数,所以我们可以使用Requests模块对它发起请求。
3、模拟发起请求
我们从网页中得知它的地址为:
https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord=%E4%B8%8D%E8%B0%93%E4%BE%A0
可以看到真正对于我们来说有用的就只有SearchKeyWord参数后的值,前面的搜索类型默认填写即可,所以我们可以这样:
import requests
headers={
'accept': '*/*',
'accept-encoding':'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'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',
'referer': 'https://www.kugou.com/yy/html/search.html',
'sec-fetch-mode': 'no-cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
aa=input('请输入歌名:')
data={
'callback': 'jQuery112408716317197794392_1590368232677',
'keyword':aa,
'page': '1',
'pagesize':'30',
'userid':'-1',
'clientver': '',
'platform': 'WebFilter',
'tag': 'em',
'filter': '2',
'iscorrection': '1',
'privilege_filter': '0',
'_': '1590368232679',
}
requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=4)
这样就实现了模拟请求,我们来验证下:

可以看出它成功打印出了和我们上面一模一样的地址。
4、获取音乐文件列表
rep=requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=5)
print(rep.url)
res=requests.get(rep.url,timeout=4)
print(res.text)
当我们将请求地址填写正确后,我发现竟然内容与预期不相符,但是请求地址对的一批。
我以为是这样的结果:

实际上的结果:

可以看到差距很大,而且用Json也根本获取不到,报格式错误,说明不是一个Json,看来这比QQ音乐难度高点。不过我们今天要下载的是音频文件,所以暂时跳过,不管它。
5、下载音频文件
我们在搜索后弹出来的列表中选择原唱曲目,进去听一下:

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

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

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

这样我们就可以把酷狗音乐的歌曲下载下来了。
【五、项目总结】
1、其实,酷狗音乐与QQ音乐不同,酷狗音乐的下载链接更好捕获,你可以直接在它的播放界面捕获到:

模拟请求这个界面,一切都搞定了。
2、关于QQ音乐的获取,可以参考之前发布的系列文章:
3、需要本文源码的小伙伴,后台回复“酷狗音乐”四个字,即可获取。 想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
版权声明
本文为[Python进阶者]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4521128/blog/4666154
边栏推荐
- Tool class under JUC package, its name is locksupport! Did you make it?
- Architecture article collection
- (2)ASP.NET Core3.1 Ocelot路由
- 一篇文章带你了解CSS3图片边框
- Brief introduction and advantages and disadvantages of deepwalk model
- Calculation script for time series data
- Face to face Manual Chapter 16: explanation and implementation of fair lock of code peasant association lock and reentrantlock
- IPFS/Filecoin合法性:保护个人隐私不被泄露
- Multi classification of unbalanced text using AWS sagemaker blazingtext
- NLP model Bert: from introduction to mastery (1)
猜你喜欢

采购供应商系统是什么?采购供应商管理平台解决方案

Summary of common string algorithms

Mongodb (from 0 to 1), 11 days mongodb primary to intermediate advanced secret

It's so embarrassing, fans broke ten thousand, used for a year!

Network security engineer Demo: the original * * is to get your computer administrator rights! 【***】

带你学习ES5中新增的方法

git rebase的時候捅婁子了,怎麼辦?線上等……

I've been rejected by the product manager. Why don't you know
![[C / C + + 1] clion configuration and running C language](/img/5b/ba96ff4447b150f50560e5d47cb8d1.jpg)
[C / C + + 1] clion configuration and running C language

速看!互联网、电商离线大数据分析最佳实践!(附网盘链接)
随机推荐
6.2 handleradapter adapter processor (in-depth analysis of SSM and project practice)
What to do if you are squeezed by old programmers? I don't want to quit
从海外进军中国,Rancher要执容器云市场牛耳 | 爱分析调研
JVM memory area and garbage collection
Skywalking series blog 2-skywalking using
数据产品不就是报表吗?大错特错!这分类里有大学问
Summary of common algorithms of linked list
一篇文章带你了解HTML表格及其主要属性介绍
Python + appium automatic operation wechat is enough
“颜值经济”的野望:华熙生物净利率六连降,收购案遭上交所问询
NLP model Bert: from introduction to mastery (2)
做外包真的很难,身为外包的我也无奈叹息。
Tool class under JUC package, its name is locksupport! Did you make it?
Did you blog today?
加速「全民直播」洪流,如何攻克延时、卡顿、高并发难题?
深度揭祕垃圾回收底層,這次讓你徹底弄懂她
使用 Iceberg on Kubernetes 打造新一代云原生数据湖
Process analysis of Python authentication mechanism based on JWT
Three Python tips for reading, creating and running multiple files
vue任意关系组件通信与跨组件监听状态 vue-communication