java解析虾米音乐

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;

import blade.kit.http.HttpRequest;
import blade.kit.json.JSONArray;
import blade.kit.json.JSONObject;

public class XiaMi {

    private static final String UA = "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53";

    public static Map<String, Object> getXiaMiData(String id) {
        Map<String, Object> map = new HashMap<String, Object>();

        String url = "http://www.xiami.com/song/playlist/id/"+ id +"/object_id/0/cat/json";

        String content = HttpRequest.get(url)
                .userAgent(UA)
                .referer("http://www.xiami.com/song/playlist/id/" + id).body();

        try {

            JSONObject jsonObject = new JSONObject(content);
            if(null == jsonObject || !jsonObject.getBoolean("status")){
                return map;
            }

            JSONObject data = jsonObject.getJSONObject("data");

            if(null == data){
                return map;
            }

            JSONArray trackList = data.getJSONArray("trackList");
            if(null == trackList){
                return map;
            }

            JSONObject track = trackList.getJSONObject(0);

            String songurl = track.getString("location");
            songurl = xiamidecode(songurl);

            String songpic = track.getString("album_pic").replace(".jpg", "_2.jpg");
            String title = track.getString("title");
            String singer = track.getString("artist");
            String lyricurl = track.getString("lyric");

            map.put("id", id);
            map.put("songurl", songurl);
            map.put("songpic", songpic);
            map.put("title", title);
            map.put("singer", singer);
            map.put("lyricurl", lyricurl);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return map;
    }

    private static String xiamidecode(String location) throws UnsupportedEncodingException {
        int _local10;
        int _local2 = Integer.parseInt(location.substring(0, 1));
        String _local3 = location.substring(1, location.length());
        double _local4 = Math.floor(_local3.length() / _local2);
        int _local5 = _local3.length() % _local2;
        String[] _local6 = new String[_local2];
        int _local7 = 0;
        while (_local7 < _local5) {
            if (_local6[_local7] == null) {
                _local6[_local7] = "";
            }
            _local6[_local7] = _local3.substring((((int) _local4 + 1) * _local7),
                    (((int) _local4 + 1) * _local7) + ((int) _local4 + 1));
            _local7++;
        }
        _local7 = _local5;
        while (_local7 < _local2) {
            _local6[_local7] = _local3
                    .substring((((int) _local4 * (_local7 - _local5)) + (((int) _local4 + 1) * _local5)),
                            (((int) _local4 * (_local7 - _local5)) + (((int) _local4 + 1) * _local5))+(int) _local4);
            _local7++;
        }
        String _local8 = "";
        _local7 = 0;
        while (_local7 < ((String) _local6[0]).length()) {
            _local10 = 0;
            while (_local10 < _local6.length) {
                if (_local7 >= _local6[_local10].length()) {
                    break;
                }
                _local8 = (_local8 + _local6[_local10].charAt(_local7));
                _local10++;
            }
            _local7++;
        }
        _local8 = URLDecoder.decode(_local8, "utf8");
        String _local9 = "";
        _local7 = 0;
        while (_local7 < _local8.length()) {
            if (_local8.charAt(_local7) == '^'){
                _local9 = (_local9 + "0");
            } else {
                _local9 = (_local9 + _local8.charAt(_local7));
            };
            _local7++;
        }
        _local9 = _local9.replace("+", " ");
        return _local9;
    }

}
时间: 2024-10-30 03:27:49

java解析虾米音乐的相关文章

Php利用java解析xml

xml 作者: 雨伞首先如果你对JAVA不感兴趣或者说你的主机不支持JAVA或者你也不打算学习的话请不要浪费时间在这里. 请先安装JAVA的执行环境与PHP结合,具体参考http://www.phpx.com/happy/thr78795.html 或者下载http://www.javax.org/download/php_java.rar里面我写有个readme.txt说明文档,这个压缩包是个简单的例子. 要下载我的JAVA源码请到http://www.javax.org/download/J

实现高性能Java解析器

备注: 本篇文章是关于先前相同主题文章的最新版本.先前文章主要介绍创建高性能解析器的一些要点,但它吸收了读者的一部分批评建议.原来的文章进行了全面修订,并补充了相对完整的代码.我们希望你喜欢本次更新. 如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析器存在缺陷,或者开源解析器项目被取消诸如此类原因.上述原因都没有你将需要实现你自己的解析器的事实重

Java解析网络数据流的三种特殊方法

Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦脑. 笔者也不例外,曾经为此而查阅了很多文档,经过反复测试才 得以解决,如今笔者已经在所从事的很多电子政务项目中顺利的应用.今天笔者写此文,介绍用Java解析网络数据的三种特殊方法,希望对正在寻求这方面问题答案的读者有所帮助. UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式.

虾米音乐怎么下载歌曲

  虾米网歌曲齐全.音质好,许多朋友都喜欢用虾米来听歌,但有时遇到好听的歌曲了,想要下载收藏时发现要登录账号,但登录账号后下载的高品质音乐又要付费,怎么从虾米上免费下载歌曲呢?今天小编就分享一个方法,非常隔离,可以让你免费下载虾米网上的歌曲! 虾米音乐免费下载歌曲方法 这样就可以了! 该页面会自动弹出下载选择窗口,直接选择标准品质 128kbps点击下载即可将该歌曲下载到本地:

虾米音乐免费领2个月vip

  虾米音乐最新版第九软件网本地下载在文章首部,官方下载:点击进入 只要下载安装了最新版本手机虾米音乐,登陆了虾米音乐的同时绑定淘宝账号即可获取90天VIP会员哦! 温馨提示: 操作可能有些复杂,在手机中是升级为淘宝会员的途径,仔细找找就可以看到了!小编已经荣升为会员了.

虾米音乐、多米音乐中的HQ、SQ、无损音乐是什么意思

  当我们在音乐播放器中听歌的时候,比如虾米音乐.多米音乐 等等,在有些歌曲的前面会出现HQ.SQ或无损的字样,而有些歌曲则没有,那么就有人有疑问了,这些代表什么意思呢?它们有什么差别,对听音乐有影响吗?下面来解释一下这到底都是什么意思. 其实它们都是代表的是一首歌曲的音乐质量,其中HQ是高质量 (High Quality) ,SQ表示超质量(Super Quality),是一种几乎无损的音乐,而无损是质量最好的音乐格式,歌曲前面没有这些字样的就表示这首歌的质量一般啦. 虽然知道了这几个的大体意

虾米音乐5.0有什么新功能

  首先,新版5.0独家采用"无限下拉"的Feed信息流呈现方式,最大化融合热点音乐与个性化音乐,让音乐风格.类型与音乐人的出现形成瀑布流的"推荐"形态.简单来说,只要你愿意,首屏可以做到无穷尽的下拉,提供无止境的音乐内容.同时,Feed流将虾米音乐擅长的后台推荐算法演绎到极致,真正做到试听的频次和个人的喜好,决定了每个人不同的首页内容. 同时,新版升级频道分类,优化用户的操作体验.单独开辟出的乐馆内囊括13个频道,用户可以更清楚地找到自己喜欢的内容.而新增的音乐人

虾米音乐按循序播放音乐的设置方法

  虾米音乐是一款非常受用户欢迎的手机音乐播放器,该播放器不仅支持多客户端平台,而且客户端中还提供了最新音乐.热门音乐等多种丰富的媒体资源,不过很多用户在使用虾米音乐后,对一些常见的功能并不是很了解,最常见的问题要输设置按照顺序播放的功能,对此小编为大家提供了相应的操作方法,下面我们一起了解下吧! 电脑版调整播放顺序的方法 如果是电脑(如首图绿色圈中显示的为顺序播放): 手机版调整播放顺序的方法 如果是手机(下图绿色圈中显示的为单曲循环): 通过上述方法教程,我们即可学习到如何在虾米音乐客户端中

虾米音乐将花落谁家

虾米音乐被阿里巴巴鲸吞,这件事似乎正在朝着愈发可信的方向进行发展.CEO王皓与虾米最早期核心都是来自阿里的,相当于有血缘上的近亲关系,然后是在阿里巴巴新的架构调整计划中,由阿里巴巴创始十八铜人之一吴泳铭所分管的三个事业部中,出现了音乐事业部. 身为虾米网的早期种子用户之一,是非常不希望这个网站被收购. 阿里巴巴的核心业务都围绕在以2B.2C为中心的电商区块,仅有的数字图书版权尝试"淘花网"也非常凄惨.基因是一个很玄妙又无头尾的说法,但某种程度上的确能描述阿里鲸吞虾米音乐后的现状. 并入