Python实现在线音乐播放器
2017-03-03 13:58
756 查看
最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码。
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2016-12-28 21:03:21 # @Author : Donoy (172829352@qq.com) # @Link : http://www.cnblogs.com/Donoy/ # @Version : $Id$ from Tkinter import * import tkMessageBox import requests import json import urllib import mp3play import threading import time def center_window(root, width, height): screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() size = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2) root.geometry(size) def createWnd(): global root global listBox global text root = Tk() root.title('-----DMPlayer------来自网易云音乐-----') center_window(root, 440, 250) root['background'] = '#C7EDCC' text = Entry(font='宋体',width=36) text.pack() button = Button(root,text='搜索',width=18,fg='red',background='#CDCDC1',command=searchM).pack() listBox = Listbox(root, height=12,width=72,background='#C7EDCC') listBox.bind('<Double-Button-1>',play) listBox.pack() root.mainloop() def searchM(): global m_List itemCount = 50 if not text.get(): tkMessageBox.showinfo('温馨提示','您可以输入以下内容进行搜索\n1.歌曲名\n2.歌手名\n3.部分歌词') return #获得输入的歌名 url = 'http://s.music.163.com/search/get/?type=1&s=%s&limit=%s'%(text.get(),itemCount) #get请求 header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36'} html = requests.get(url,header) data = json.loads(html.text) m_List = [] try: listBox.delete(0,listBox.size()) for MusicData in data['result']['songs']: listBox.insert(END,MusicData['name'] +'------'+'(' +MusicData['artists'][0]['name'] + ')') m_List.append(MusicData['audio']) except Exception as e: tkMessageBox.showinfo('温馨提示','查询过程出现错误,请重试') #print '查询过程出现错误,请重试' def play(args): try: global mp3 sy = listBox.curselection()[0] mp3 = mp3play.load(m_List[int(sy)]) mp3.play() #time.sleep(1000) except Exception as e: pass def main(): createWnd() if __name__ == '__main__': main()
程序运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Python:语音处理,实现在线朗读RFC文档或本地文本文件
- ACM在线测评系统评测程序设计与python实现
- OJ在线测评系统程序设计与Python实现
- python在线神经网络实现手写字符识别系统
- python利用tkinter和wmp实现的带有系统托盘tray的音乐播放器
- Python实现的在线保持
- WebSocket+多线程python socket网页版实时在线聊天实现
- 5行Python代码实现一个简单的在线英汉词典
- 通过编写Shell、Python脚本来实现在线管理KVM虚拟机
- Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
- Python 实现简单的C/S在线更新程序
- ACM在线测评系统评测程序设计与python实现
- ACM在线测评系统评测程序设计与python实现
- Python登录大连交通大学教务在线实现成绩查询
- 在Python的Tornado框架中实现简单的在线代理的教程
- asp.net实现在线音乐播放器示例
- python实现查询qq是否在线
- Python实现扫描局域网活动ip(扫描在线电脑)
- python3音乐播放器简单实现代码
- python3实现最大子序列和的在线处理方法