/** * @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
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日