帖子已更新2019-03-25,请看最后
1: 支持网站 资源 \’QQ\’, \’酷我\’, \’虾米\’, \’酷狗\’, \’百度\’, \’网易\’
2: 敲黑板,付费音乐也可以下载哦,(图片示例为qq收费音乐)
3: 用到的库都是官方自带的库,不需要额外下载其他。
4: 没有安装环境的同学怎么办呢,
我已经帮你们打包好了,只能64位系统运行,32位有需要的可以回帖,我帮你们打包)
5: 麻烦把您的免费评分给一下,谢谢您的鼓励。
好了,废话说完,先上图片看看情况(额。。。界面不是很好看,将就着用,毕竟我们不是奔着界面去的,)
第一步:选择音乐库(默认QQ, 不要问我为什么, 因为QQ 是我表哥)
第二步:输入要下载的音乐,点击搜索
第三步:双击界面的音乐,确认下载,
第四步:在程序运行的文件加查看音乐
第五步:再次选择下载,(本来这个省了,但是谁让我喜欢《过火》呢,没有为什么)
下面是独立运行的EXE链接:
https://pan.baidu.com/s/1C7twVwzoZURpWVu5Y2L5ew
6pgk
下面是源码:(代码写的很烂,大家见谅)
[Python] 纯文本查看 复制代码from tkinter import *
from re import findall, sub
from tkinter.ttk import Combobox
from requests import get, post
headers={
\’Cookie\’: \’Tip_of_the_day=2; encrypt_data=56f2bc9d081609eb8e605a176c9f144de8c9c6ac96288a2e51fce7143a94433d8c0c4fc70944b9163392d9ea977fc7343168112d1769b16d03bd4b9d7d56317224940c2824ccbeeccb73a633bdfeabdd7c124ff7f5064b6ef27b7959ebcb279cb52e5da22eff1a00fd6ee3efe7adc077a415e7bd0edfb126ed4487ef27904634; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1\’,
\’Host\’: \’moresound.tk\’,
\’User-Agent\’: \’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36\’,
\’X-Requested-With\’: \’XMLHttpRequest\’,
}
def huoqu(urlid):
url = \’http://moresound.tk/music/\’+urlid
res = get(url, headers=headers)
ress = res.json()
ff = ress[\’url\’]
# print(ff)
return ff
def Save(urlid):
url = huoqu(urlid)
res = get(url).content
Save_wenjian = sub(\'[\\\\\\\\/:*?\\"<>|]\’, \’\’, str(Save_name)) # 正则去掉文件名不支持的字符
with open(\'{}.mp3\’.format(Save_wenjian), \’wb\’)as f:
f.write(res)
confirmLabel.insert(END, \’已保存至本程序运行的文件下!!!!\’, \’\\n\\n请继续搜索下载\’)
def danqu_url(id):
global Save_name
url = \’http://moresound.tk/music/api.php?get_song={}\’.format(sousuo_key)
data = {\’mid\’: id}
res = post(url, data=data, headers=headers)
ss = res.json()
# AAC = ss[\’url\’][\’24AAC\’]
mp3 = ss[\’url\’][\’128MP3\’]
Save_name = ss[\’song\’]+\’__\’+ss[\’singer\’]
Save(mp3)
id_list = [] # 用于将sousuo()函数获取到的歌曲ID装起来
def sousuo():
global sousuo_key
sousuoyinqin = xialalan.get() # 获取输入的搜索引擎
dict_sousuo = {\’QQ\’: \’qq\’, \’酷我\’: \’kw\’, \’虾米\’: \’xm\’, \’酷狗\’: \’kg\’, \’百度\’: \’bd\’, \’网易\’: \’wy\’}
sousuo_key = dict_sousuo[sousuoyinqin] # 确认选择的搜索引擎
del id_list[:] # 清空列表,重置(使用多次以后列表装太多数据,不删除下次会出错)
confirmLabel.delete(0, END) # 清空文本框
dd = namee_Entry.get() # 获取输入的歌名
url = \’http://moresound.tk/music/api.php?search={}\’.format(sousuo_key)
data={
\’w\’: \'{}\’.format(dd),
\’p\’: \’1\’,
\’n\’: \’20\’,
}
res = post(url, data=data, headers=headers)
ress = res.json()
for i in range(15):
name_geshou = ress[\’song_list\’][i][\’singer\’][0][\’name\’]
name_geming = ress[\’song_list\’][i][\’songname\’]
name_zhuanji = ress[\’song_list\’][i][\’albumname\’]
name_id = ress[\’song_list\’][i][\’songmid\’]
name_geming1 = sub(\'<sup.*|\\n|\\r|\’, \’\’, str(name_geming)[:10]) # 去掉多余的信息
isserts = name_geshou+\’ \’+ name_geming1+\’ 专辑: \’ + name_zhuanji
confirmLabel.insert(END, str(i)+\’:\’+isserts) # 将获取到的详细信息打印到GUI
id_list.append(name_id) # 获取到的id添加到列表里面,供xuanze(event)函数使用。
def xuanze(event):
ff = confirmLabel.get(confirmLabel.curselection())
ff = findall(\’\\d+\’, str(ff))
# print(id_list[ii],ii)
confirmLabel.delete(0, END) # 清空文本框
confirmLabel.insert(END, \’正在下载:请稍后…\’)
window.update()
if ff != []:
ii = int(ff[0])
danqu_url(id_list[ii])
window = Tk()
weather = StringVar()
window.geometry(\’800×600+500+200\’) # 窗口大小
window.title(\’MP3歌曲下载===下载速度取决于您的网速\’)
taitouLabel = Label(window, text="请输入要下载的歌曲: ", height=2, width=30, font=("Times", 20, "bold"), fg=\’red\’)
sousuoLabel = Label(window, text="选择音乐库: ", height=1, width=10, font=("Times", 15, "bold"), fg=\’#00008b\’)
xialalan = Combobox(window, width=4, textvariable=weather,font=("黑体", 18, "bold"),state=\’editable\’)
xialalan[\’values\’] = (\’QQ\’, \’酷我\’, \’虾米\’, \’酷狗\’, \’百度\’, \’网易\’)
xialalan.current(0)
namee_Entry = Entry(window, width=25, font=("Times", 20, "bold"))
button = Button(window, text="搜索", command=sousuo, ) # .grid_location(33,44)
GunDongTiao = Scrollbar(window) # 设置滑动块组件
confirmLabel = Listbox(window, height=15, width=55, font=("Times", 15, "bold"), fg=\’red\’, bg=\’#EEE5DE\’,
yscrollcommand=GunDongTiao.set) # Listbox组件添加Scrollbar组件的set()方法
confirmLabel.bind(\'<Double-Button-1>\’, xuanze) # 双击选择文本框的内容
GunDongTiao.config(command=confirmLabel.yview) # 设置Scrollbar组件的command选项为该组件的yview()方法
taitouLabel.grid(column=1)
sousuoLabel.grid(row=0, column=0)
xialalan.grid(row=1, column=0)
namee_Entry.grid(row=1, column=1, sticky=N + S)
button.grid(row=1, column=1, sticky=E)
confirmLabel.grid(row=3, column=1, sticky=E)
GunDongTiao.grid(row=3, column=2, sticky=N + S + W) # 设置垂直滚动条显示的位置
window.mainloop()
11/16新增内容:
实现了自己选择格式的功能,(顺便还增加了可以下载MV的功能,惊不喜惊喜,意不意外,)
11/21新增内容:
经评论区大神提议 @181842@181842上传了蓝奏云,无限速下载很爽的
EXE独立运行程序64位
百度云:
https://pan.baidu.com/s/1tKCMOJlFCO1AxZYNyDWZrA 密码: c2r4
蓝奏云:
https://www.lanzous.com/i2fgbgf
EXE独立运行程序32位
百度云:
https://pan.baidu.com/s/1XmjcB2-O7ehzw2GDFZQswA 密码: s79y
蓝奏云:
https://www.lanzous.com/i2fgbji
11/23新增内容:
实现了快捷键操作
按下回车键进行搜索
按下ESC搜索清空框
网求方便下载量大的同学
64位 https://www.lanzous.com/i2fw3da
2019/03/25更新内容:
解决部分歌曲无法下载,
64位 https://www.lanzous.com/i3jmd3a
使用wxpython做的GUI
64位 https://www.lanzous.com/i3lsvkd
差点忘了,
麻烦把您的免费评分给一下,谢谢您的鼓励。(免费源码都扔出来了,不给评分都不好意思)
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!603313839@qq.com
2. 请您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源
3. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
4. 不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
5. 不保证所有资源都完整可用,不排除存在BUG或残缺的可能,由于资源的特殊性,下载后不支持退款。
6. 站点所有资源仅供学习交流使用,切勿用于商业或者非法用途,与本站无关,一切后果请用户自负!