首页 > 代码库 > Python实现 ---【简易】在线音乐播放器

Python实现 ---【简易】在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码。

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Date    : 2016-12-28 21:03:21
 4 # @Author  : Donoy (172829352@qq.com)
 5 # @Link    : http://www.cnblogs.com/Donoy/
 6 # @Version : $Id$
 7 
 8 from Tkinter import *
 9 import tkMessageBox
10 import requests
11 import json
12 import urllib
13 import mp3play
14 import threading
15 import time
16 
17 
18 def  createWnd():
19     global root
20     global listBox
21     global text
22     
23     root = Tk()
24     root.title(-- DMPlayer --默认搜索100条----来自网易云音乐---)
25     root.geometry(500x270+600+200)
26 
27     text = Entry(font=宋体,width=36)
28     text.pack()
29     Button(root,text=搜索,width=18,command=searchM).pack()
30 
31     listBox = Listbox(root, height=12,width=72)
32     listBox.bind(<Double-Button-1>,play)
33     listBox.pack()
34 
35     root.mainloop()
36 
37 def searchM():
38     global m_List 
39     itemCount = 100
40 
41     if not text.get():
42         tkMessageBox.showinfo(温馨提示,您可以输入以下内容进行搜索\n1.歌曲名\n2.歌手名\n3.部分歌词)
43 
44     #获得输入的歌名以及url
45     url = http://s.music.163.com/search/get/?type=1&s=%s&limit=%s%(text.get(),itemCount)
46     
47     #get请求
48     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}
49     html   = requests.get(url,header)
50     data   =http://www.mamicode.com/ json.loads(html.text)
51     m_List = []
52 
53     try:
54         listBox.delete(0,listBox.size())
55         for MusicData in data[result][songs]:
56             listBox.insert(END,MusicData[name] +------+( +MusicData[artists][0][name] + ))
57             m_List.append(MusicData[audio])
58     except Exception as e: 
59         print 查询过程出现错误,请重试
60     
61     
62 def  play(args):
63     try:
64         global mp3
65         sy = listBox.curselection()[0]
66         mp3 = mp3play.load(m_List[int(sy)])
67         mp3.play()
68         #time.sleep(1000)
69     except Exception as e:
70         pass
71 
72     
73 def main():
74     createWnd()
75 
76 
77 if __name__ == __main__:
78     main()

    程序运行结果如下图:

 技术分享

 

Python实现 ---【简易】在线音乐播放器