/**  
* @Title: App.java 
* @Description:
* @Copyright: Copyright (c) 2019
* @author: Su.Yuanlin  
* @date 2019年2月12日  
* @QQ 314078331  
* @Like 流水落花春去也,天上人间
*/
package com.xiaoc.down_qq_music;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import com.alibaba.druid.support.json.JSONParser;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
public class App {
	public static final String __LIST = "list";
	public static final String __SONG = "song";
	public static final String __TAB = "tab";
	public static final String __SINGER = "singer";
	public static final String __NAME = "name";
	public static final String __SONGNAME = "songname";
	public static final String __SONGMID = "songmid";
	public static final String __MP3_L = "mp3_l";
	public static final String __MID = "mid";
	public static final String QUERY_MUSIC_URL = "https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=";
	public static final String DOWNURL = "http://www.douqq.com/qqmusic/qqapi.php";
	public static String getSeachData(String keyWord) {
		String url = QUERY_MUSIC_URL + keyWord;
		String resultStr = HttpUtil.get(url);
		int begin = resultStr.indexOf(__SONG) + 6;
		int end = resultStr.indexOf(__TAB) - 2;
		return resultStr.substring(begin, end);
	}
	public static Map<Integer, String> getMusicDic(JSONArray jsonArrayData) {
		Map<Integer, String> sonmidMap = new HashMap<Integer, String>();
		// 将音乐放入map,提供下载选择
		for (int i = 0; i < jsonArrayData.size(); i++) {
			JSON jsonObject = JSONUtil.parse(jsonArrayData.get(i));
			JSONArray jsonArray = new JSONArray(jsonObject.getByPath(__SINGER));
			Object songName = JSONUtil.parse(jsonArray.get(0)).getByPath(__NAME);
			System.out.println(i + "---------" + jsonObject.getByPath(__SONGNAME) + "------" + songName.toString());
			sonmidMap.put(i, jsonObject.getByPath(__SONGMID).toString());
		}
		return sonmidMap;
	}
	public static String getDownLoadUrl(Map<Integer, String> musicDicMap, int order) {
		String post = HttpUtil.post(DOWNURL, "mid=" + musicDicMap.get(order).toString());
		JSONParser jsp = new JSONParser(post);
		Object byPath2 = JSONUtil.parse(jsp.parse()).getByPath(__MP3_L);
		System.out.println(byPath2);
		return byPath2.toString();
	}
	public static void main(String[] args) {
		System.out.print("请输入歌曲名称:");
		String _keyWord = new Scanner(System.in).nextLine();
		String jsonData = getSeachData(_keyWord);
		// System.out.println(jsonData);
		JSON objectJsonData = JSONUtil.parse(jsonData);
		Object listJsonData = objectJsonData.getByPath(__LIST);
		JSON listJson = JSONUtil.parse(listJsonData);
		JSONArray jsonArrayData = new JSONArray(listJson);
		Map<Integer, String> sonmidMap = getMusicDic(jsonArrayData);
		System.out.print("请输入歌曲编号:");
		int nextInt = new Scanner(System.in).nextInt();
		String downLoadUrl = getDownLoadUrl(sonmidMap, nextInt);
		System.out.println("请用浏览器打开,如果是H5播放页面,则点击播放页面省略号中的下载按钮即可");
		System.out.println(downLoadUrl);
	}
}
最近下载更多
                
                qq1176648922     LV6
                2022年11月9日
            
            
        
                chenccf86     LV1
                2022年4月28日
            
            
        
                云翳tel青     LV11
                2022年1月10日
            
            
        
                红茶馆     LV5
                2021年1月4日
            
            
        
                zhytest     LV2
                2020年12月11日
            
            
        
                benbosn     LV15
                2020年6月20日
            
            
        
                shshopop     LV10
                2020年5月7日
            
            
        
                w5650100     LV3
                2020年4月13日
            
            
        
                oldgentleman     LV1
                2020年2月16日
            
            
        
                wei112233     LV15
                2020年2月2日
            
            
        
最近浏览更多
                
                2523812927     LV1
                2024年6月27日
            
            
        
                xingbing     LV9
                2023年2月10日
            
            
        
                kdwz0329    
                2022年12月28日
            
            
                    暂无贡献等级
            
        
                wawayv     LV2
                2022年12月12日
            
            
        
                云龙123456     LV7
                2022年12月9日
            
            
        
                qq1176648922     LV6
                2022年11月9日
            
            
        
                ijiabing     LV6
                2022年10月16日
            
            
        
                agjbvfhjbg     LV6
                2022年9月2日
            
            
        
                yangshifu     LV1
                2022年6月5日
            
            
        
                qiaofu22     LV4
                2022年6月3日
            
            
        
                
                