美文网首页代码改变世界大数据 爬虫Python AI SqlPython编程
Python自制音乐下载器,无需切换平台无需氪金!

Python自制音乐下载器,无需切换平台无需氪金!

作者: 傻逼平台瞎几把封号 | 来源:发表于2022-01-20 20:51 被阅读0次

    兄弟们,我来了😎

    平时我们想下一首歌,因为资源限制,需要在W平台、Q平台、K平台来回切换,这样多累,那我就直接做了一个聚合的音乐下载器,想要什么歌,直接输入名字分分钟就下载到位了😍


    📢 效果展示

    ⚡ 爱了爱了

    那我下首分手快乐试试🤣

    都保存在音乐文件夹了


    📢 代码解析

    ⚡ 准备工作

    环境配置

    # 解释器 python3.6
    # 编辑器 pycharm专业版 
    
    

    环境不会配置的小伙伴可以看我置顶合集里面有

    导入模块

    import os
    from urllib.request import urlretrieve
    from tkinter import *
    import requests  # pip 安装
    import jsonpath  # json数据的解析工具
    

    ⚡ 界面实现

    先整一手好看的界面,我这个比较简单,大家可以改的好看一点。

    1. 创建画布
    root = Tk()
    
    1. 设置标题
    root.title('音乐下载器')
    
    1. 设置窗口大小以及出现位置
    root.geometry('560x450+400+200')
    
    1. 标签组件
    label = Label(root, text='请输入下载歌曲:', font=('华文行楷', 20))
    
    1. 定位、布局
    label.grid()
    
    1. 输入框组件
    entry = Entry(root, font=('隶书', 20))
    entry.grid(row=0, column=1)
    
    1. 单选按钮
    var = StringVar()
    r1 = Radiobutton(root, text='网抑云', variable=var, value='netease')
    r1.grid(row=1, column=0)
    r2 = Radiobutton(root, text='秋秋音乐', variable=var, value='qq')
    r2.grid(row=1, column=1)
    
    1. 列表框
    text = Listbox(root, font=('隶书', 16), width=50, heigh=15)
    text.grid(row=2, columnspan=2)
    
    1. 下载按钮
    button1 = Button(root, text='开始下载', font=('隶书', 15), command=get_music_name)
    button1.grid(row=3, column=0)
    
    1. 退出按钮
    button2 = Button(root, text='退出程序', font=('隶书', 15), command=root.quit)
    button2.grid(row=3, column=1)
    

    ⚡ 功能实现

    基本就是爬虫的一些操作

    创建文件夹

    os.makedirs("音乐", exist_ok=True)
    path = "音乐\{}.mp3".format(title)
    text.insert(END, '歌曲:{},正在下载...'.format(title))
    

    文本框滚动

    text.see(END)
    

    更新

    text.update()
    

    下载

    urlretrieve(url, path)
    text.insert(END, '下载完毕:{},请试听'.format(title))
    

    文本框滚动

    text.see(END)
    

    更新

    text.update()
    

    搜索歌曲

    def get_music_name():
    
        name = entry.get()
        platfrom = var.get()
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
            'x-requested-with': 'XMLHttpRequest'  # 判断请求是异步还是同步
        }
    
        data = {
            'input': name,
            'filter': 'name',
            'type': platfrom,
            'page': 1,
        }
    
        url = 'https://music.liuzhijin.cn/'
    
        resp = requests.post(url=url, data=data, headers=headers)
        json_text = resp.json()
    
        title = jsonpath.jsonpath(json_text, '$..title')[0]
        author = jsonpath.jsonpath(json_text, "$..author")[0]
        url = jsonpath.jsonpath(json_text, "$..url")[0]
    

    下载

    song_load(url, title)
    

    相关文章

      网友评论

        本文标题:Python自制音乐下载器,无需切换平台无需氪金!

        本文链接:https://www.haomeiwen.com/subject/uvcshrtx.html