美文网首页大数据 爬虫Python AI Sql
爬虫制作gui界面音乐播放器

爬虫制作gui界面音乐播放器

作者: 真夜猫 | 来源:发表于2018-12-17 15:16 被阅读4次

人生苦短,快用python,今天我们来打造一个属于自己的爬虫音乐播放器。

来先上图:(一个牛逼、漂亮、简洁、高大上的音乐播放器)


播放器界面.JPG

1.首先我们来导入需要的库:

import requests
import re
import json
from tkinter import *
import tkinter.messagebox
import urllib.request
import requests
import pygame
import encodings

变量设置

path=[]
h=0

搜索音乐播放,调用相关函数

def music():
    global path
    path=[]
    cs=0
    query=entry.get()
    #name=urllib.request.quote(name,encoding="utf8")
    if not query:
        tkinter.messagebox.showinfo("提示","请输入歌曲名再进行搜索")
        return
    api="http://music.baidu.com/search?key=%s"%query
    response=requests.get(api)
    #print(response.text)
    sid=re.findall("sid":"+"(.*?)"+",",response.text)
    print(sid)
    for i in sid:
        get_mp3_by_sid(i,cs)
        cs+=1

获取mp3下载链接中的id参数的函数

def get_mp3_by_sid(sid,cs):
    global path
    w=[]

    api="http://musicapi.qianqian.com/v1/restserver/ting?method=baidu.ting.song.play&format=jsonp&callback=jQuery172018602504867491998_1517931605266&songid=%s&_=1517931610100"%sid
    response=requests.get(api)
   # print(response.text)
    data=response.text
   # print(data)
    data=re.findall(r"\((.*)\)",data)[0]
    data=json.loads(data)
   # print(data)
    #取得歌曲的信息(名字,MP3地址)
    mp3_name=data['songinfo']['title']
    songer=data['songinfo']['author']

    #print(mp3_name)
    w.append(mp3_name)
    mp3_url=data["bitrate"]["file_link"]
    print(mp3_name,songer)

   # print(mp3_url)
    #
    # #持久化
    response=requests.get(mp3_url)
    with open(r"{}-{}.mp3".format(mp3_name,songer),"wb") as f:#bytes 二进制
         f.write(response.content)
    歌曲=mp3_name+"-"+songer
    path.append(r"{}.mp3".format(歌曲))
    #print(path)
    #print("gg",歌曲)
    listbox.insert(cs,歌曲)

播放函数

def paly(event):
    aa=0
    #print(event)
    sy=listbox.curselection()[0]
  #  print(path[int(sy)])
    u=path[int(sy)]
    pygame.init()
    pygame.mixer.init()
    #screen = pygame.display.set_mode([640, 480])
    pygame.time.delay(1000)
    u=u.encode("utf-8")
    q=pygame.mixer.music.load(u)
    #q.play()
    pygame.mixer.music.play()

播放暂停按钮逻辑功能函数

def www():
    global h
    h = h + 1
    if h<2:
        pygame.mixer.music.pause()

        print(h)
    elif h==2:
        h = 0
        print(h)
        pygame.mixer.music.unpause()

gui界面创建函数

#创建一个窗口
root=Tk()#创建窗口,实例化对象
root.title("music oline")
root.geometry("+610+200")#300x200表示窗口大小,+700+200表示窗口显示的位置
entry=Entry(root)#创建控件(搜索框,并实例化
entry.pack()#布局
button=Button(root,text="搜  索",command=music)
button.pack()
stop=Button(root,text="停止/播放",command=wwww)
stop.pack()
var=StringVar()
listbox=Listbox(root,width=50,listvariable=var)#width宽
listbox.bind("<Double-Button-1>",paly)
listbox.pack()
i=Label(text="欢迎使用 mymusic",fg="red")
i.pack()#fg:字体颜色
root.mainloop()#显示窗口

请务必记得将路径替换成自己的,还等什么,快点来试一试吧。

相关文章

网友评论

    本文标题:爬虫制作gui界面音乐播放器

    本文链接:https://www.haomeiwen.com/subject/dygqkqtx.html