一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Python实现在线音乐播放器

时间:2017-05-18 编辑:简简单单 来源:一聚教程网

最近这几天,学习了一下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$

 

fromTkinterimport*

importtkMessageBox

importrequests

importjson

importurllib

importmp3play

importthreading

importtime

 

defcenter_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)

 

defcreateWnd():

 globalroot

 globallistBox

 globaltext

  

 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('',play)

 listBox.pack()

 

 root.mainloop()

 

defsearchM():

 globalm_List

 itemCount=50

 

 ifnottext.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())

  forMusicDataindata['result']['songs']:

   listBox.insert(END,MusicData['name']+'------'+'('+MusicData['artists'][0]['name']+')')

   m_List.append(MusicData['audio'])

 exceptException as e:

  tkMessageBox.showinfo('温馨提示','查询过程出现错误,请重试')

  #print '查询过程出现错误,请重试'

  

  

defplay(args):

 try:

  globalmp3

  sy=listBox.curselection()[0]

  mp3=mp3play.load(m_List[int(sy)])

  mp3.play()

  #time.sleep(1000)

 exceptException as e:

  pass

 

  

defmain():

 createWnd()

 

 

if__name__=='__main__':

 main()

 

程序运行结果:

热门栏目