首页 > 其他分享 >Download Music For Free (vision:1.1 Beta build 2022060201)

Download Music For Free (vision:1.1 Beta build 2022060201)

时间:2022-10-02 11:00:27浏览次数:85  
标签:END 1.1 title url text Free Beta root 下载

音乐下载工具

版本:1.1 Beta build 2022060201

源代码:

'''
本次更新内容:
1.添加信息提示功能
2.更改一些字的字体
'''
# 导入模块
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下载

标签:END,1.1,title,url,text,Free,Beta,root,下载
From: https://www.cnblogs.com/skyrainbow/p/16748418.html

相关文章

  • HCIP-Datacom-Core 1.1实验 OSPF单区域
    前言:哈哈,我这个鸽子王又回来了! 1.1.1实验介绍实现单区域OSPF的配置 实现OSPF区域认证的配置 描述OSPF在多路访问网络中邻居关系建立的过程 实现对OSPF接口......
  • 1.1 层叠
    CSSCSS,全面层叠样式表,(CascadingStylesSheet)CSS,是一种声明规则,即在我们规定的条件下产生各种各样的效果CSS声明css声明该声明由一个属性(color)和一个值(black)组成......
  • 1.11 Linux进程管理
    Linux进程管理在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。每个进......
  • Affinity Publisher for Mac(桌面排版神器)v1.10.5中文注册版
    你可能不知道,排版神器正式版AffinityPublisherforMac已经发布了!AffinityPublisherforMac中文注册版是创意软件工作室Serif旗下的一款桌面排版应用,可以帮助专业设计......
  • 在 nginx 中配置 HSTS 并禁用 TLS 1.0、1.1
    可以使用以下地址工具按需生成nginx配置https://ssl-config.mozilla.org/#server=nginxHSTS的配置为:#HSTS(ngx_http_headers_moduleisrequired)(63072000seco......
  • 1.1学生排名表(析构函数)
    现在输入一批学生(人数大于0且不超过100)的名次和他们的姓名。要求按名次输出每个人的排名。输入格式:每行为一个学生的信息,共两项,第一项为排名(为正整数,且任意两名学生的排名......
  • Microsoft PowerPoint LTSC 2021 for Mac(ppt演示工具)v16.67 beta版 mac/win
    PowerPoint2021forMac是一款能够在mac平台上使用的ppt演示工具,随时随地快速轻松地创建、编辑、查看、演示或共享演示文稿。需要随时随地快速访问最近使用的PowerPoint......
  • const, var, let的区别 1.10
    js中三种定义变量的方式const,var,let的区别。1.const定义的变量不可以修改,而且必须初始化。1constb=2;//正确2//constb;//错误,必须初始化3console.log('函数外const定......
  • Editable FreeViewpoint Video
    使用分层神经表示的可编辑自由视点视频自由视点视频的生成对于沉浸式VR/AR体验非常重要,但是最近神经方法进展仍然缺乏在大动态场景下操纵视觉感知的编辑能力。为填补当前的......
  • FreeSwitch 视频支持 安装libyuv libvpx opus mod_av 等模块介绍
    ①openh264OpenH264是思科公司以BSD协议开放的一个开源的H.264编码器和解码器。Cisco将以BSD协议开放其H264解码器实现,并提供针对主流操作系统的预编译库文件......