本文来源吾爱破解论坛
原文借鉴:原文贴
首先这个帖子的代码大不部分是参考@珍珠奶茶丶板牙的,我当时下载的他的源码。
然后用着不是特别方便,就自己改良了一下下,然后又打包成无需环境的exe程序,让我朋友们使用。
然后我再使用的过程中发现一个bug,下载“逍遥叹”歌曲的时候会有bug。
emmm,刚才我又重新试了一遍,BUG又没了,真的是玄学。看的我一脸懵...
大概就是 media_mid = [] 这个列表返回的数据,有的格式不是正确,我也没修。[Python] 纯文本查看 复制代码
#-*- coding:utf-8 -*-# author:**ZLH** # datetime:2019/8/2 16:47 # software: PyCharm import requests import json headers = { 'Host': 'c.y.qq.com', 'Referer': 'http://c.y.qq.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 ' 'Safari/537.36 ' } def douqq_post(mid): """ 返回歌曲下载url :param mid:歌曲mid :return: 字典 """ post_url = 'http://www.douqq.com/qqmusic/qqapi.php' data = {'mid': mid} res = requests.post(post_url, data=data) get_json = json.loads(res.text) return eval(get_json) def download_file(src, file_path): """ 歌曲下载 :param src: 下载链接 :param file_path: 存储路径 :return: 文件路径 """ r = requests.get(src, stream=True) f = open(file_path, "wb") for chunk in r.iter_content(chunk_size=512): if chunk: f.write(chunk) return file_path def choice_download(dic): print('1. m4a视频') print('2. mp3普通品质') print('3. mp3高品质') print('4. ape高品无损') print('5. flac无损音频') select = int(input("请输入您的选择:")) src = '' postfix = '' if select == 1: src = dic['m4a'] postfix = '.m4a' if select == 2: src = dic['mp3_l'] postfix = '.mp3' if select == 3: src = dic['mp3_h'] postfix = '.mp3' if select == 4: src = dic['ape'] postfix = '.ape' if select == 5: src = dic['flac'] postfix = '.flac' return postfix, src.replace('\/\/', '//').replace('\/', '/') def find_song(word): """ 查找歌曲 :param word: 歌曲名 :return: 返回歌曲mid """ get_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=' + word try: res1 = requests.get(get_url, headers=headers) get_json = json.loads(res1.text.strip('callback()[]')) jsons = get_json['data']['song']['list'] songmid = [] media_mid = [] song_singer = [] i = 1 for song in jsons: # print(i, ':' + song['songname'], '---', song['singer'][0]['name'], song['songmid'], song['media_mid']) print(i, ':' + song['songname'], '---', song['singer'][0]['name']) songmid.append(song['songmid']) media_mid.append(song['media_mid']) song_singer.append(song['singer'][0]['name']) i = i + 1 select = int(input("请输入您的选择:")) - 1 return songmid[select], song_singer[select] except Exception as e: print(f'歌曲查找有误:{e}') return None if __name__ == '__main__': # songname = '叹云兮' while True: songname = input("Please input the music name:") song_mid, singer = find_song(songname) dic = douqq_post(song_mid) # { # "mid":"004FjJo32TISsY", # "m4a":"http:\/\/dl.stream.qqmusic.qq.com\/C400004FjJo32TISsY.m4a?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=38", # "mp3_l":"http:\/\/dl.stream.qqmusic.qq.com\/M500004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53", # "mp3_h":media_mid"http:\/\/dl.stream.qqmusic.qq.com\/M800004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53", # "ape":"http:\/\/dl.stream.qqmusic.qq.com\/A000004FjJo32TISsY.ape?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53", # "flac":"http:\/\/dl.stream.qqmusic.qq.com\/F000004FjJo32TISsY.flac?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53", # "pic":"https:\/\/y.gtimg.cn\/music\/photo_new\/T002R300x300M000003NZyTh4eMMsp.jpg?max_age=2592000" # } # print('mid:'+dic['mid']) postfix, url = choice_download(dic) save_path = "D:\\Music\\" download_file(url, save_path + songname + ' - ' + singer + postfix) con = input('Download success or not continue: y/n') if con == 'n': break
微信图片_20190814222216.png (53.12 KB, 下载次数: 6)
下载附件 保存到相册
2019-8-14 22:22 上传
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 批量读取excel百度链接转存到自己的百度网盘
- 下一篇: python 实现一个简单的聊天系统