Python實(shí)現(xiàn)在線音樂(lè)播放器
最近這幾天,學(xué)習(xí)了一下python,對(duì)于爬蟲比較感興趣,就做了一個(gè)簡(jiǎn)單的爬蟲項(xiàng)目,使用Python的庫(kù)Tkinsert做了一個(gè)界面,感覺(jué)這個(gè)庫(kù)使用起來(lái)還是挺方便的,音樂(lè)的數(shù)據(jù)來(lái)自網(wǎng)易云音樂(lè)的一個(gè)接口,通過(guò)requests模塊,get請(qǐng)求將數(shù)據(jù)獲得,使用Json模塊進(jìn)行數(shù)據(jù)的解析,最終使用python的mp3play庫(kù)進(jìn)行對(duì)音樂(lè)的在線播放,以下是該程序的源碼。
#!/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------來(lái)自網(wǎng)易云音樂(lè)-----')
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('溫馨提示','您可以輸入以下內(nèi)容進(jìn)行搜索\n1.歌曲名\n2.歌手名\n3.部分歌詞')
return
#獲得輸入的歌名
url = 'http://s.music.163.com/search/get/?type=1&s=%s&limit=%s'%(text.get(),itemCount)
#get請(qǐng)求
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('溫馨提示','查詢過(guò)程出現(xiàn)錯(cuò)誤,請(qǐng)重試')
#print '查詢過(guò)程出現(xiàn)錯(cuò)誤,請(qǐng)重試'
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()
程序運(yùn)行結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python3音樂(lè)播放器簡(jiǎn)單實(shí)現(xiàn)代碼
- python實(shí)現(xiàn)可下載音樂(lè)的音樂(lè)播放器
- 基于python實(shí)現(xiàn)音樂(lè)播放器代碼實(shí)例
- 自己用python做的一款超炫酷音樂(lè)播放器
- python開發(fā)簡(jiǎn)易版在線音樂(lè)播放器
- python實(shí)現(xiàn)簡(jiǎn)易云音樂(lè)播放器
- 基于Python實(shí)現(xiàn)音樂(lè)播放器的實(shí)現(xiàn)示例代碼
- python 制作簡(jiǎn)單的音樂(lè)播放器
- Python編程實(shí)現(xiàn)簡(jiǎn)易的音樂(lè)播放器基本操作
- Python制作簡(jiǎn)易音樂(lè)播放器的實(shí)現(xiàn)步驟記錄
相關(guān)文章
Python庫(kù)中可以操作JavaScript盤點(diǎn)解析
這篇文章主要為大家介紹了Python庫(kù)之可以操作JavaScript盤點(diǎn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
一個(gè)基于flask的web應(yīng)用誕生 組織結(jié)構(gòu)調(diào)整(7)
一個(gè)基于flask的web應(yīng)用誕生第七篇,這篇文章主要介紹了組織結(jié)構(gòu)的調(diào)整,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
pytest內(nèi)置fixture使用臨時(shí)目錄流程詳解
fixture是在測(cè)試函數(shù)運(yùn)行前后,由pytest執(zhí)行的外殼函數(shù)。fixture中的代碼可以定制,滿足多變的測(cè)試需求,包括定義傳入測(cè)試中的數(shù)據(jù)集、配置測(cè)試前系統(tǒng)的初始狀態(tài)、為批量測(cè)試提供數(shù)據(jù)源等等。fixture是pytest的精髓所在2022-12-12
漂亮的Django Markdown富文本app插件的實(shí)現(xiàn)
這篇文章主要介紹了漂亮的Django Markdown富文本app插件的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-08
python基于Selenium的web自動(dòng)化框架
這篇文章主要介紹了python基于Selenium的web自動(dòng)化框架,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python中的set實(shí)現(xiàn)不重復(fù)的排序原理
這篇文章主要介紹了python中的set實(shí)現(xiàn)不重復(fù)的排序原理,需要的朋友可以參考下2018-01-01

