获取网易云音乐开放接口api的推荐歌单

网易云音乐开放api接口
网址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi
项目地址:https://github.com/Binaryify/NeteaseCloudMusicApi

下载下来之后,安装依赖:npm install
启动服务: node app.js

启动成功之后,根据api接口文档就可以获取请求的url了。
本文需求是,获取推荐歌单30张,并把数据存储到MySQL数据库,并且根据每张歌单的图片url将图片下载下来存到本地。

先看一下获取歌单列表的api文档

文档地址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi
全局搜索Ctrl + F 推荐歌单,可以看到一个api
image

试一试看能不能得到数据
把项目启动,网址输入:50张歌单
http://localhost:3000/personalized?limit=50

可以得到数据,现在来存储到数据库,并且下载图片

先看一下数据结构,存储哪些数据
这里我们只要歌单的id,picUrl,name,playCount

先建表

springboot连接数据库,代码生成controller,service,mapper等,使用mybatis-plus

先存储

controller:
    /**
     * 获取歌单列表
     * api接口地址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi
     * 项目地址:https://github.com/Binaryify/NeteaseCloudMusicApi
     * 下载下来之后
     * npm install
     * 运行 node app.js
     * 默认运行端口:3000
     */
    @GetMapping("/getListSongs")
    public ResponseWrapper getListSongs(){
   
        return gedanService.getListSongs();
    }
service实现
    /**
     * 获取歌单列表
     * api接口地址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi
     * 项目地址:https://github.com/Binaryify/NeteaseCloudMusicApi
     * 下载下来之后
     * npm install
     * 运行 node app.js
     * 默认运行端口:3000
     */
    @Override
    public ResponseWrapper getListSongs() {
   
        // 推荐歌单的请求地址:http://localhost:3000/personalized?limit=
        /**
         * 推荐歌单
         * 说明 : 调用此接口 , 可获取推荐歌单
         *
         * 可选参数 : limit: 取出数量 , 默认为 30 (不支持 offset)
         *
         * 接口地址 : /personalized
         *
         * 调用例子 : /personalized?limit=1
         */
        // 获取100个歌单
        String url = "http://localhost:3000/personalized?limit=50";
        String s = HttpUtils.sendGetRequest(url);
        log.info(s);
        // JSON字符串转JSONObject对象
        JSONObject jsonObj = JSONObject.parseObject(s);
        // JSONObject对象转map
        Map<String, Object> map = JSONUtilsTool.JSONObjectToMap(jsonObj);
        log.info(map.toString());

        log.info(map.get("code").toString());
        if (map.get("code").toString().equals("200")){
   
            // 200 说明获取数据成功
            Object result = map.get("result");
            log.info(result.toString());
            // 获取到了歌单列表
            JSONArray resuArr = JSONObject.parseArray(result.toString());
            log.info(resuArr.get(0).toString());

            // JSONArray 转 list<javaBean>
            List
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值