python播放url音乐_python实现音乐播放和下载小程序功能

该博客介绍了如何使用Python驱动Edge浏览器爬取网易云音乐的非付费内容,通过获取歌曲ID和名称,下载MP3文件到指定文件夹。同时,它还展示了如何使用Tkinter构建一个简单的音乐播放器,具备播放、暂停、下一曲、上一曲和音量控制等功能。整个过程涉及到网络爬虫、GUI编程以及音频处理。
摘要由CSDN通过智能技术生成

1.网易云非付费内容爬取器(声明:由于技术十分简单,未到触犯软件使用规则的程度)驱动Edge浏览器(自己写驱动会更高端)进入界面,爬取列表中第一个音频地址并存入相应文件夹中。这里有一个最简单的爬虫程序和一个最简单的tkinter GUI编程。

注意,要先在网易云音乐网页中将第一个对应音频链接的位置定位:

对于以上定位可通过如下方式获得(定位器):

req = driver.find_element_by_id('m-search')

a_id = req.find_element_by_xpath('.//div[@class = "item f-cb h-flag "]/div[2]//a').get_attribute("href")

在XML语言中寻找链接路径的方法可参见find_element_by_xpath

创建目录参见makedirs

这里的GUI需要tkinter添加文本。用text控件insert(插入文本)、see(滚动)、update(更新)等方法显示正在下载和已下载图样;在get_music_name函数中,首先从输入窗口获取名称,然后调用Edge驱动访问网易云音乐主页,通过'http://music.163.com/song/media/outer/url?id={}.mp3'.format(song_id)搜到歌曲,通过上述定位器找到歌曲地址和歌名。注意到第一个函数传入的应该是字典类型(有了这种语句:song_id = item['song_id']),那就创建一个字典后在函数体内调用song_load实现下载。在这之前,驱动就完成了任务,所以可以关闭驱动。

至于Tkinter的控件内容,应该根据实际情况试错和设计,界面编程相对还是比较简单的。(分别创建标签控件、输入框、列表框、按钮,并依次确定它们在主界面中的位置)

from tkinter import *

from selenium import webdriver

global entry

import os

from urllib.request import urlretrieve

#2.下载歌曲

def song_load(item):

song_id = item['song_id']

song_name = item['song_name']

song_url = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(song_id)

#创建文件夹

os.makedirs('music_netease',exist_ok=True)

path = 'music_netease\{}.mp3'.format(song_name)

#显示数据到文本框

text.insert(END,'歌曲:{},正在下载...'.format(song_name))

#文本框滚动

text.see(END)

#更新

text.update()

#下载

urlretrieve(song_url,path)

#显示数据到文本框

text.insert(END,'歌曲:{},下载完毕'.format(song_name))

#文本框滚动

text.see(END)

#更新

text.update()

#1.搜索

def get_music_name():

#获取输入的内容

name = entry.get()

url = 'https://music.163

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值