Python实现在线音乐播放器


Posted in Python onMarch 03, 2017

最近这几天,学习了一下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实现在线音乐播放器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
python查询sqlite数据表的方法
May 08 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python机器学习之决策树算法
Dec 22 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
python中的反斜杠问题深入讲解
Aug 12 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
PyQt5的QWebEngineView使用示例
Oct 20 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
python开发简易版在线音乐播放器
Mar 03 #Python
详解python中requirements.txt的一切
Mar 03 #Python
python中异常捕获方法详解
Mar 03 #Python
python利用不到一百行代码实现一个小siri
Mar 02 #Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 #Python
Python正则表达式教程之二:捕获篇
Mar 02 #Python
Python正则表达式教程之一:基础篇
Mar 02 #Python
You might like
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
浅谈javascript的调试
2015/01/28 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python九九乘法表的实例
2017/09/26 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
python图像处理入门(一)
2019/04/04 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
使用Python构造hive insert语句说明
2020/06/06 Python
Python 图片处理库exifread详解
2021/02/25 Python
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
获奖的大学生创业计划书
2014/01/05 职场文书
关于保护环境的标语
2014/06/09 职场文书
病人慰问信范文
2015/02/15 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
2019年教师入党申请书
2019/06/27 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python