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

Posted Python爱好者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇文章教会你使用Python网络爬虫下载酷狗音乐相关的知识,希望对你有一定的参考价值。

转自:IT共享之家


【一、项目背景】

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


【二、项目准备】

1、编辑器:Sublime Text 3

2、软件:360浏览器


【三、项目目标】

下载我们喜欢的音乐。

  

【四、项目实现】

1、打开酷狗音乐官网

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

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

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


2、审查元素,分析请求

打开Network ,分析请求,我们可以看到:

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

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


3、模拟发起请求

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

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

import requestsheaders={'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)

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

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


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)

我以为是这样的结果:

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

实际上的结果:

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

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


5、下载音频文件

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

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

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

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

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

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

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

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

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


【五、项目总结】

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

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

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

感谢阅读

推荐阅读:

1

3:



重磅!Python交流已成立


公众号运营至今,离不开小伙伴们的支持。
为了给小伙伴们提供一个互相交流的技术平台,特地开通了 Python交流群。
群里有不少技术大神,不时会分享一些技术要点,更有一些资源收藏爱好者不时分享一些优质的学习资料。 (免费,不卖课!)

需要进群的朋友,可长按扫描下方二维码。


▲长按扫码

以上是关于一篇文章教会你使用Python网络爬虫下载酷狗音乐的主要内容,如果未能解决你的问题,请参考以下文章

一篇文章教会你利用Python网络爬虫获取Mikan动漫资源

Python爬虫爬取酷狗音乐网络红歌榜

一篇文章教会你利用Python网络爬虫获取分类图片

一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

# yyds干货盘点 # 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

python使用beautifulsoup4爬取酷狗音乐