Skyrainbow工作室博客 b|

Skyrainbow_team

园龄:2年6个月粉丝:0关注:1

Download Music For Free (vision:1.2 Beta 1 build 2022060202)

音乐下载工具

版本:1.2 Beta 1 build 2022060202

源代码:

'''
本次更新内容:
1.添加信息提示功能
2.更改一些字的字体
3.解决无法保存文件的bug
4.禁用输出歌曲列表
'''
# 导入模块
from tkinter import *
import requests
import jsonpath
import os
from urllib.request import urlretrieve
# import tkinter.ttk 

# 2.功能实现
"""
    1.url
    2.模拟浏览器请求
    3.解析网页源代码
    4.保存数据
"""
def song_download(url,title,author):
    # 创建文件夹
    os.makedirs("music",exist_ok=True)
    path = '.\music\{}.mp3'.format(title)
    text.insert(END,'歌曲:{0}-{1},正在下载...'.format(title,author))
    # 文本框滑动
    text.see(END)
    # 更新
    text.update()
    # 下载
    urlretrieve(url,path)
    text.insert(END,'下载完毕,{0}-{1},请试听'.format(title,author))
    # 文本框滑动
    text.see(END)
    # 更新
    text.update()

def get_music_name():
    """
    搜索歌曲名称
    :return:
    """
    name = entry.get()
    platfrom = var.get()
    # name = '白月光与朱砂痣'
    url = 'https://music.liuzhijin.cn/'
    headers = {
        "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
        # 判断请求是异步还是同步
        "x-requested-with":"XMLHttpRequest",
    }
    param = {
        "input":name,
        "filter":"name",
        "type":platfrom,
        "page": 1,
    }
    res = requests.post(url=url,data=param,headers=headers)
    json_text = res.json()

    title = jsonpath.jsonpath(json_text,'$..title')
    author = jsonpath.jsonpath(json_text,'$..author')
    url = jsonpath.jsonpath(json_text, '$..url')
    # print(title,author,url)
    song_download(url[0],title[0],author[0])


# 1.用户界面
# 创建画板
root = Tk()
# 设置窗口标题
root.title('全网音乐下载器')
# 设置窗口大小以及出现的位置
root.geometry('560x450+400+200')
# 标签组件
label = Label(root,text="请输入下载的歌曲:",font=('楷体',20))
# 定位与布局
label.grid(row=0)
# 输入框组件
entry = Entry(root,font=('黑体',20))
entry.grid(row=0,column=1)
# 单选按钮
var = StringVar()
r1 = Radiobutton(root,text='网易云',variable=var,value='netease')
r1.grid(row=1,column=0)
r2 = Radiobutton(root,text='QQ',variable=var,value='qq')
r2.grid(row=1,column=1)
# 列表框
text = Listbox(root,font=('仿宋',16),width=50,height=15)
text.grid(row=2,columnspan=2)
text.insert(END,'版本信息:1.1 Beta build 20020602')
text.insert(END,'提示:下载的音乐将会在程序所在文件夹下的music')
text.insert(END,'文件夹中保存,请先下载本程序后再运行')
text.insert(END,'提示:记得选择下载源哦~')
# 下载按钮
button1 = Button(root,text='开始下载',command=get_music_name)
button1.grid(row=3,column=0)
button2 = Button(root,text='退出程序',command=root.quit)
button2.grid(row=3,column=1)
# 显示界面
root.mainloop()

# 如何将.py代码打包成.exe文件

下载地址:
Onedrive下载

本文作者:Skyrainbow_team

本文链接:https://www.cnblogs.com/skyrainbow/p/16748450.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Skyrainbow_team  阅读(32)  评论(0编辑  收藏  举报
   
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起