找回密码
  注册[Register]
查看: 547|回复: 3

[python] python之音乐下载

[复制链接]
发表于 2021-2-18 21:46 来自手机 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

[Python] 纯文本查看 复制代码
from tkinter import *
 
from selenium import webdriver
import os
from urllib.request import urlretrieve
 
 
def song_load(item):
    song_id = item['song_id']
    song_name = item['song_name']
 
    song_url = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(song_id)
    os.makedirs('down', exist_ok=True)
    path = 'down\{}.mp3'.format(song_name)
    text.insert(END, '歌曲:{},正在下载...'.format(song_name))
    text.see(END)
    text.update()
 
    urlretrieve(song_url, path)
    text.insert(END, '{}:下载完成'.format(song_name))
    text.see(END)
    text.update()
 
 
def get_music_name():
    name = entry.get()
    url = 'https://music.163.com/#/search/m/?s={}&type=1'.format(name)
    option = webdriver.ChromeOptions()
    option.add_argument('--headless')
    driver = webdriver.Chrome(chrome_options=option)
    # driver = webdriver.Chrome()
    driver.get(url)
    driver.switch_to.frame('g_iframe')
 
    # 此处获取歌曲id序列
    song_id_1 = driver.find_element_by_class_name('text')
    s = song_id_1.find_element_by_tag_name('a')
    song_id_2 = s.get_attribute('href')
    song_id = song_id_2.split('=', 2)[1]
 
    # print(song_id)
 
    # 此处获取歌曲名称
    song_name_1 = song_id_1.find_element_by_tag_name('a')
    song_name = song_name_1.find_element_by_tag_name('b').get_attribute('title')
 
    # print(song_name)
    driver.quit()
    item = {'song_id': song_id, 'song_name': song_name}
    song_load(item)
 
 
# get_music_name()
 
root = Tk()
root.title('网易云音乐下载')
root.geometry("400x380+200+180")
 
label = Label(root, text='大哥~想听啥呢:', font=20)
label.grid()
 
entry = Entry(root, font=20)
entry.grid(row=0, column=1)
 
text = Listbox(root, font=20, width=50, height=18)
text.grid(row=1, columnspan=2)
 
button = Button(root, text='下载', font=20, command=get_music_name)
button.grid(row=2, column=0, sticky=W)
button1 = Button(root, text='退出', font=20, command=root.quit)
button1.grid(row=2, column=1, sticky=E)
 
root.mainloop()
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2021-2-18 23:21 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-2-18 23:21 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-2-19 15:42 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-13 05:09 , Processed in 0.038555 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表