一篇文章教会你使用Python网络爬虫下载酷狗音乐

【1、项目背景】html

如今的听歌软件动不动就是各类付费,要下载软件才能听,当你下载了以后,你会惊奇的发现这首歌还收费,这就让一贯喜欢白嫖的小编感到很伤心了。因而,小编左思右想,终于让我发现了其中的奥秘,一块儿来看看吧。浏览器

【2、项目准备】cookie

一、编辑器:Sublime Text 3网络

二、软件:360浏览器cors

【3、项目目标】编辑器

下载咱们喜欢的音乐。学习

【4、项目实现】fetch

一、打开酷狗音乐官网网站

360浏览器打开酷狗音乐官网:url

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

二、审查元素,分析请求

打开Network ,分析请求,咱们能够看到:

从上图能够看出,这是请求的参数,因此咱们可使用Requests模块对它发起请求。

三、模拟发起请求

咱们从网页中得知它的地址为:

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)

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

能够看出它成功打印出了和咱们上面如出一辙的地址。

四、获取音乐文件列表

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音乐难度高点。不过咱们今天要下载的是音频文件,因此暂时跳过,无论它。

五、下载音频文件

咱们在搜索后弹出来的列表中选择原唱曲目,进去听一下:

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

咱们输入后缀Mp3,而后定位到对应的请求,而后打开它的请求结果,能够看到一个Json结果:

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

这样咱们就能够把酷狗音乐的歌曲下载下来了。

【5、项目总结】

一、其实,酷狗音乐与QQ音乐不一样,酷狗音乐的下载连接更好捕获,你能够直接在它的播放界面捕获到:

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

二、关于QQ音乐的获取,能够参考以前发布的系列文章:

三、须要本文源码的小伙伴,后台回复“酷狗音乐”四个字,便可获取。
想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

相关文章
相关标签/搜索