Python實(shí)現(xiàn)在線音樂(lè)播放器
最近這幾天,學(xué)習(xí)了一下python,對(duì)于爬蟲(chóng)比較感興趣,就做了一個(gè)簡(jiǎn)單的爬蟲(chóng)項(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è)播放器代碼實(shí)例
- python實(shí)現(xiàn)簡(jiǎn)易云音樂(lè)播放器
- python 制作簡(jiǎn)單的音樂(lè)播放器
- 基于Python實(shí)現(xiàn)音樂(lè)播放器的實(shí)現(xiàn)示例代碼
- Python編程實(shí)現(xiàn)簡(jiǎn)易的音樂(lè)播放器基本操作
- 使用Python的音樂(lè)播放器GUI的實(shí)現(xiàn)
- 基于Python實(shí)現(xiàn)本地音樂(lè)播放器的制作
- Python制作一個(gè)多功能音樂(lè)播放器
相關(guān)文章
Tensorflow2.1實(shí)現(xiàn)Fashion圖像分類示例詳解
這篇文章主要為大家介紹了Tensorflow2.1實(shí)現(xiàn)Fashion圖像分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11windows系統(tǒng)下Python環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了windows系統(tǒng)下Python環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03使用python-docx在word文檔中查找書(shū)簽,并在書(shū)簽處寫(xiě)入數(shù)據(jù)方式
使用python-docx庫(kù),可在Word文檔中查找書(shū)簽并寫(xiě)入數(shù)據(jù)。首先打開(kāi)文檔,通過(guò)bookmarks屬性獲取書(shū)簽對(duì)象,然后使用書(shū)簽名定位書(shū)簽位置,最后將數(shù)據(jù)寫(xiě)入書(shū)簽處。這種方法適合自動(dòng)化填充Word模板等場(chǎng)景2024-09-09python3操作注冊(cè)表的方法(Url protocol)
使用python操作注冊(cè)表的方法最近學(xué)習(xí)了一下,現(xiàn)在做一下筆記,由于對(duì)Python語(yǔ)言的使用還不是很熟練,所以寫(xiě)不出高大上的結(jié)構(gòu)2020-02-02Pytorch?PyG實(shí)現(xiàn)EdgePool圖分類
這篇文章主要為大家介紹了Pytorch?PyG實(shí)現(xiàn)EdgePool圖分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python如何處理異常報(bào)錯(cuò)方法(建議收藏!)
開(kāi)發(fā)程序其實(shí)就像預(yù)測(cè)天氣一樣,即使是代碼的異常錯(cuò)誤,也應(yīng)該能預(yù)測(cè)且被控制,下面這篇文章主要給大家介紹了關(guān)于Python如何處理異常報(bào)錯(cuò)方法的相關(guān)資料,需要的朋友可以參考下2022-06-06Python函數(shù)式編程之面向過(guò)程面向?qū)ο蠹昂瘮?shù)式簡(jiǎn)析
這一番我們要學(xué)習(xí)點(diǎn)有難度的了,因此將降低閱讀與理解難度,盡量采用大白話為你鋪墊,因?yàn)樯婕暗囊恍└拍钜彩墙梃b的其它編程語(yǔ)言的風(fēng)格,而且實(shí)際落地中存在部分爭(zhēng)議不過(guò)多學(xué)一點(diǎn),總是沒(méi)有壞處的2021-09-09