美文网首页
利用python自己动手制作一个音乐下载器,想听什么歌自己下就好

利用python自己动手制作一个音乐下载器,想听什么歌自己下就好

作者: 孤城暮雨丶 | 来源:发表于2020-12-17 14:06 被阅读0次

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

    一、前言

    之前大家有没有过从电脑上下载歌曲MP3文件放到手机内存卡的经历,随着时代发展,现在的各大音乐软件已经成为播放器,下载音乐是要收费的,
    现在教大家从零开始可以通过python通过爬虫爬取音乐,教大家打造自己的音乐下载器。

    二、知识点

    1.python基础知识
    2.requests库
    3.urliib库
    4.BeautifulSoup

    三、所用到得库

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

    四、 功能

    爬虫

    1. url
    2. 模拟浏览器请求
    3. 解析网页源代码
    4. 保存数据

    五、环境配置

    解释器 python3.6
    编辑器 pycharm专业版 激活码

    六、完整代码

    def song_load(url, title):
        # 创建文件夹
        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; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 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)
    
    # 一 界面
    # 1\. 创建画布
    root = Tk()
    # 2\. 设置标题
    root.title('全网音乐下载器')
    # 3\. 设置窗口大小以及出现位置
    root.geometry('560x450+400+200')
    
    # 4\. 标签组件
    label = Label(root, text='请输入下载歌曲:', font=('华文行楷', 20))
    # 5\. 定位  布局
    label.grid()
    
    # 6\. 输入框组件
    entry = Entry(root, font=('隶书', 20))
    entry.grid(row=0, column=1)
    
    # 7\. 单选按钮
    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)
    # 8\. 列表框
    text = Listbox(root, font=('隶书', 16), width=50, heigh=15)
    text.grid(row=2, columnspan=2)
    # 9\. 下载按钮
    button1 = Button(root, text='开始下载', font=('隶书', 15), command=get_music_name)
    button1.grid(row=3, column=0)
    # 10\. 退出按钮
    button2 = Button(root, text='退出程序', font=('隶书', 15), command=root.quit)
    button2.grid(row=3, column=1)
    
    # 显示界面
    root.mainloop()
    
    # 二 功能
    
    # pyinstaller
    
    

    七、实现界面

    在这里插入图片描述

    界面不是很完美,主要是时间原因,没用调整的那么好看,但是下载功能齐全。

    相关文章

      网友评论

          本文标题:利用python自己动手制作一个音乐下载器,想听什么歌自己下就好

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