当前位置:网站首页>一篇文章教会你使用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
边栏推荐
- Network security engineer Demo: the original * * is to get your computer administrator rights! 【***】
- 前端都应懂的入门基础-github基础
- 在大规模 Kubernetes 集群上实现高 SLO 的方法
- Summary of common algorithms of linked list
- NLP model Bert: from introduction to mastery (2)
- The choice of enterprise database is usually decided by the system architect - the newstack
- 比特币一度突破14000美元,即将面临美国大选考验
- The data of pandas was scrambled and the training machine and testing machine set were selected
- “颜值经济”的野望:华熙生物净利率六连降,收购案遭上交所问询
- vue任意关系组件通信与跨组件监听状态 vue-communication
猜你喜欢

一篇文章带你了解CSS对齐方式

How to select the evaluation index of classification model

Examples of unconventional aggregation

Natural language processing - BM25 commonly used in search

Summary of common string algorithms

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

I think it is necessary to write a general idempotent component

一篇文章带你了解CSS 分页实例

Linked blocking Queue Analysis of blocking queue

小程序入门到精通(二):了解小程序开发4个重要文件
随机推荐
一篇文章带你了解CSS3图片边框
React design pattern: in depth understanding of react & Redux principle
Word segmentation, naming subject recognition, part of speech and grammatical analysis in natural language processing
一篇文章带你了解CSS3 背景知识
Summary of common string algorithms
NLP model Bert: from introduction to mastery (2)
阿里云Q2营收破纪录背后,云的打开方式正在重塑
Python + appium automatic operation wechat is enough
ES6学习笔记(四):教你轻松搞懂ES6的新增语法
Python saves the list data
How to select the evaluation index of classification model
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
Summary of common algorithms of linked list
Don't go! Here is a note: picture and text to explain AQS, let's have a look at the source code of AQS (long text)
PHPSHE 短信插件说明
I've been rejected by the product manager. Why don't you know
Multi classification of unbalanced text using AWS sagemaker blazingtext
“颜值经济”的野望:华熙生物净利率六连降,收购案遭上交所问询
Can't be asked again! Reentrantlock source code, drawing a look together!
Examples of unconventional aggregation