您的位置:首頁 >聚焦 >

環球觀速訊丨Python實現一個音樂下載器,不存在充會員的 | 附源碼

2022-12-17 19:48:21    來源:程序員客棧
Python實現一個音樂下載器,不存在充會員的| 附源碼前言

halo,包子們上午好

很多學計算機的小伙伴應該都知道,畢業設計是一個頭疼的東西


(資料圖)

今天的話小編這邊給大家用Python實現一個音樂下載器

這不是畢業設計必備項目

說實話操作起來還是有那么一點點的難度的,但是大家不用擔心

作為一個寵粉狂魔的小編,肯定都給大家準備好了的

直接上才藝

相關文件

關注小編,私信小編領取喲!

當然別忘了一件三連喲~~

公眾號:Python日志

源碼領取QQ群:494958217

開發工具

Python版本:3.7.8

相關模塊:

requests模塊;

re模塊;

os模塊;

以及一些python自帶的模塊。

效果展示代碼展示0101導入模塊

import osimport refrom urllib import parseimport requestsimport sysfrom PyQt5.QtGui import QIcon, QPixmap, QTextCursorfrom PyQt5 import QtWidgetsfrom PyQt5.QtCore import QUrlfrom PyQt5.QtGui import QDesktopServicesfrom music import Ui_Form  # 界面

02獲取連接

headers = {    "Accept-Language": "zh-CN,zh;q=0.9",  # 瀏覽器基本信息  "User-Agent": "User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",  # 辨別用戶的身份  "Cookie": "_ga=GA1.2.1046563906.1629973377; _gid=GA1.2.864288642.1637645958; _gat=1; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1635428199,1637645959,1637647069,1637650108; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1637650108; kw_token=79O0NFTF9MH",  # 認證令牌  "csrf": "79O0NFTF9MH",  # 指定的請求資源的域名  "Host": "www.kuwo.cn"}

03主函數

class Pyqt5_Music(QtWidgets.QWidget, Ui_Form):    def __init__(self):        super(Pyqt5_Music, self).__init__()        self.setupUi(self)        self.init()        self.setWindowTitle("音樂下載器")        self.setWindowIcon(QIcon("音樂_填充.svg"))        self.lineEdit.setText("")        self.lineEdit_2.setText("")        self.lineEdit_3.setText("")        pix = QPixmap("Python大本營.jpg")        self.label_6.setPixmap(pix)        self.label_6.setScaledContents(True)    def init(self):        self.pushButton.clicked.connect(self.song_ok)        self.pushButton_2.clicked.connect(self.main_exit)        self.pushButton_3.clicked.connect(self.show_child)    def song_ok(self):        music_info_list = self.get_music_info()        music_data = self.get_purl(music_info_list)        self.save_music_mp3(music_data)    def main_exit(self):        sys.exit(self)    def show_child(self):        QDesktopServices.openUrl(QUrl("https://ke.qq.com/course/package/51020?tuin=8ac397eb"))    def get_music_info(self):        """搜索歌曲"""    music_info_list = []        name = self.lineEdit.text()        page = self.lineEdit_2.text()        num = self.lineEdit_3.text()        headers["Referer"] = "http://www.kuwo.cn/search/list?key=" + parse.quote(name)        url = f"http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={name}&pn={page}&rn={num}"    response = requests.get(url, headers=headers)        music_data = response.json()  # 獲取到的是字符串    music_list = music_data["data"]["list"]        for music in music_list:            music_name = music["name"]  # 歌曲的名字      singer_name = music["artist"]  # 歌手的名字      songmid = music["rid"]            media_mid = music["album"]            music_info_list.append((music_name, singer_name, songmid, media_mid))        return music_info_list    def get_purl(self, a):        """獲取歌曲url"""    music_data = []        for music in a:            music_name = music[0]            singer_name = music[1]            songmid = music[2]            purl = f"https://www.kuwo.cn/api/v1/www/music/playUrl?mid={songmid}&type=convert_url3&br=320kmp3"      full_media_url = requests.get(purl, headers=headers).json()["data"]["url"]            music_name = re.sub(r"[\/:*?"<>|]", "", music_name)            music_data.append(                {                    "music_name": music_name,          "singer_name": singer_name,          "full_media_url": full_media_url                }            )        return music_data    def save_music_mp3(self, b):        """保存歌曲"""    if not os.path.exists("歌曲下載"):  # 判斷是否有歌曲下載文件夾      os.mkdir("歌曲下載")  # 如果沒有創建 歌曲下載文件夾    for music in b:            music_name = music["music_name"]            singer_name = music["singer_name"]            full_url = music["full_media_url"]            music_response = requests.get(full_url).content            with open("歌曲下載/%s-%s.mp3" % (music_name, singer_name), "wb")as fp:                fp.write(music_response)                print("[%s]保存成功!" % music_name)                self.textEdit.append("[%s-%s.mp3]保存成功!" % (music_name, singer_name))                cursor = self.textEdit.textCursor()                cursor.movePosition(QTextCursor.End)  # 還可以有別的位置        self.textEdit.setTextCursor(cursor)

源碼獲取

【領取方式】

QQ掃碼添加

【依次發放,請勿重復添加】

添加時備注“公眾號”

即可免費領取學習資料和課程

或者直接搜索QQ群:494958217 領取

關鍵詞: 一個音樂 畢業設計 準備好了

相關閱讀

欧美视频线路在线_欧美中文字幕在线中出观看_中年美女露比自慰交配a一级片免费播放_九九精品国中文字幕在线视频