手搓一个属于自己的xx.exe程序基于python

网易云音乐下载器

本文将介绍如何使用Python编写一个简单的网易云音乐下载器。我们将使用tkinter库创建一个简单的图形用户界面,以及requestsBeautifulSouppygame库来实现音乐下载和播放功能。

1. 导入所需库

首先,我们需要导入所需的库:

from tkinter import *
import pygame
import requests
from bs4 import BeautifulSoup
import os

2. 下载音乐

接下来,我们定义一个名为download的函数,用于下载音乐:

def download():
    try:
        headers = {
            'Host': 'music.163.com',
            'Referer': 'https://music.163.com/',
            'User-Agent': '这里需要兄弟们自己的东西'
        }
        url = entry.get()
        response = requests.get(url, headers=headers).text
        music_dict = {}
        r = BeautifulSoup(response, 'html.parser')
        result = r.find('ul', class_='f-hide').find_all('a')
        for music in result:
            music_id = music.get('href').strip('/song?id=')
            music_name = music.text
            music_dict[music_id] = music_name
        for song_id in music_dict:
            song_url = 'https://music.163.com/song/media/outer/url?id=%s' % song_id
            english_name = music_dict[song_id].encode('gbk', 'ignore').decode('gbk')
            path = os.path.join('', f'{english_name}.mp3')
            try:
                response = requests.get(song_url).content
                with open('网易云音乐\\' + music_dict[song_id] + '.mp3', 'wb') as f:
                    f.write(response)
            except Exception as e:
                print('下载失败:', e)
            text.insert(END, '正在下载:', music_dict[song_id])
            text.see(END)
            text.update()
    except Exception as e:
        text.insert(END, "下载失败: " + str(e))
        text.see(END)
        text.update()

3. 播放音乐

接下来,我们定义一个名为play_music的函数,用于播放音乐:

def play_music(event=None):
    selected_name = text.get(text.curselection())
    english_name = selected_name.encode('gbk', 'ignore').decode('gbk')
    selected_path = os.path.join('', f'{english_name}.mp3')
    pygame.mixer.init()  # 初始化pygame混音器
    pygame.mixer.music.load(selected_path)  # 加载音频文件
    pygame.mixer.music.play()  # 播放音频文件

4. 暂停音乐

然后,我们定义一个名为pause_music的函数,用于暂停音乐:

def pause_music():
    pygame.mixer.music.pause()

5. 创建图形用户界面

最后,我们使用tkinter库创建一个简单的图形用户界面:

root = Tk()
root.title('网易云音乐')
root.geometry('550x400+550+230')
label = Label(root, text='请输入要下载的ID:', font=('华文行楷', 13))
label.grid()
entry = Entry(root, font=('微软雅黑', 25))
entry.grid(row=0, column=1)
text = Listbox(root, font=('微软雅黑', 15), width=45, height=10)
text.grid(row=1, columnspan=2)
button = Button(root, text='开始下载', font=('微软雅黑', 15), command=download)
button.grid(row=2, column=0, sticky=W)
button1 = Button(root, text='退出', font=('微软雅黑', 15), command=root.quit)
button1.grid(row=2, column=1, sticky=E)
pause_button = Button(root, text='暂停', font=('微软雅黑', 15), command=pause_music)
pause_button.grid(row=2, column=0, sticky=E)
play_button = Button(root, text='播放', font=('微软雅黑', 15), command=play_music)
play_button.grid(row=2, column=1, sticky=W)

root.mainloop()

至此,我们已经完成了一个简单的网易云音乐下载器。你可以运行这段代码,然后在图形用户界面中输入音乐ID,点击“开始下载”按钮进行下载。下载完成后,你可以在列表框中选择音乐并点击“播放”按钮进行播放。
以上内容不可商业化,各位老铁拜托了,仅仅用于训练技术

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值