Android 酷我音乐API抓取

本文介绍了如何利用酷我音乐的API获取音乐资源,包括歌曲ID、歌曲名称、艺术家信息及图片链接等内容,并提供了具体的URL实例。
以下内容仅供学习
最近想要做app获取音乐,但音乐一直本地获取,过于局限,于是想到网络获取音乐,但网上大多api接口失效,于是查找音乐网页版多个查询,不失所望,获取到酷我音乐一部分:
首先我们找到了获取音乐的网址 如 麦兜 9420
http://antiserver.kuwo.cn/anti.s?   response=url&rid=MUSIC_29616287%22&format=mp3&type=convert_url



打开上面这个网址我们看到(动态获取,打开上个网址获取)

http://win.web.nf01.sycdn.kuwo.cn/2879f0c6089652f75f1307de404cfadd/5a637e57/resource/n1/37/23/2065128640.mp3

MP3的路径,打开正是搜寻歌曲 ,进过一番试验,发现我们唯一要获取的就是歌去的音乐播放ID ,MUSIC_(id) 那么我们怎么获取呢,于是查看了到:

这里写图片描述

看到songUrl

http://search.kuwo.cn/r.s?SONGNAME=歌名&ft=music&rformat=json&encoding=utf8&rn=8&callback=song&vipver=MUSIC_8.0.3.1
如:
http://search.kuwo.cn/r.s?SONGNAME=9420&ft=music&rformat=json&encoding=utf8&rn=8&callback=song&vipver=MUSIC_8.0.3.1


给出一部分网页代码

这里写图片描述

仔细查看我们可以看到
这里写图片描述
是的 我们获取到了音乐的mp3的id,并且我们意外获取到相同名字的歌曲的id


现在我们已经有了歌名(SONGNAME)、作者(ARTIST)、播放id(MP3RID) 。 但做音乐item还缺少基本的图片,于是继续获取图片,但发现所有的图片都是歌手的图片,那也继续获取吧,至少有比没有强啊,

通过
http://www.kuwo.cn/artist/content?name=麦小兜
看到源码这一部分
这里写图片描述
通过获取网页代码 再通过标签的去获取图片网址

获取到图片

这里写图片描述
好了 基本实现



接下来可以实现音乐的搜索功能了

首先songUrl 并不是标准的JSON格式 所以我们需要一番处理:为所有的字符串单引号改为双引号
在去掉首部

这里写图片描述

去掉尾部

这里写图片描述

剩余代码用在线JSON格式查看视图可以看到

这里写图片描述

所有歌曲都在abslist的节点下 接下来JSON获取就可已了

通过点击使用MediaPlayer类的setDataSource(String url) 实现播放就ok了




效果图:

这里写图片描述
效果这里写图片描述
实现点击播放了
由于并不是所有的歌曲都有图片,所以没有的显示默认的

使用Python爬虫抓取音乐网站的音乐数据是一个涉及网络请求、数据解析和文件下载的过程。以下是一个简单的示例,展示如何使用Python爬虫抓取音乐的部分数据: 1. **安装必要的库**: - `requests`:用于发送HTTP请求。 - `BeautifulSoup`:用于解析HTML内容。 - `os`:用于处理文件和目录。 ```python import requests from bs4 import BeautifulSoup import os # 音乐的URL url = 'https://www.kuwo.cn/search/list?key=周杰伦' # 发送HTTP请求 response = requests.get(url) response.encoding = 'utf-8' # 解析HTML内容 soup = BeautifulSoup(response.text, 'html.parser') # 查找所有音乐链接 music_links = soup.find_all('a', class_='name') # 创建保存音乐的目录 if not os.path.exists('music'): os.makedirs('music') # 遍历音乐链接并下载音乐 for link in music_links: music_name = link.get_text() music_url = link['href'] music_response = requests.get(music_url) # 保存音乐文件 with open(os.path.join('music', f'{music_name}.mp3'), 'wb') as file: file.write(music_response.content) print(f'已下载: {music_name}') ``` 2. **注意事项**: - **合法性**:在抓取网站数据之前,请确保你有权限这样做,并且遵守网站的使用条款和隐私政策。 - **反爬虫机制**:许多网站都有反爬虫机制,如验证码、IP封禁等。可以通过设置请求头、使用代理等方式来规避。 - **数据解析**:不同网站的HTML结构不同,需要根据实际情况调整解析代码。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值