環(huán)球觀速訊丨Python實現(xiàn)一個音樂下載器,不存在充會員的 | 附源碼
2022-12-17 19:48:21 來源:程序員客棧
Python實現(xiàn)一個音樂下載器,不存在充會員的| 附源碼前言
halo,包子們上午好
很多學計算機的小伙伴應該都知道,畢業(yè)設計是一個頭疼的東西
(資料圖)
今天的話小編這邊給大家用Python實現(xiàn)一個音樂下載器
這不是畢業(yè)設計必備項目
說實話操作起來還是有那么一點點的難度的,但是大家不用擔心
作為一個寵粉狂魔的小編,肯定都給大家準備好了的
直接上才藝
相關文件關注小編,私信小編領取喲!
當然別忘了一件三連喲~~
公眾號:Python日志
源碼領取QQ群:494958217
開發(fā)工具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主函數(shù)
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("歌曲下載") # 如果沒有創(chuàng)建 歌曲下載文件夾 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掃碼添加
【依次發(fā)放,請勿重復添加】
添加時備注“公眾號”
即可免費領取學習資料和課程
或者直接搜索QQ群:494958217 領取
相關閱讀
-
環(huán)球觀速訊丨Python實現(xiàn)一個音樂下載器...
Python實現(xiàn)一個音樂下載器,不存在充會員的|附源碼前言halo,包子們... -
Python實現(xiàn)一個羊人殺小游戲,祝愿看到...
Python實現(xiàn)一個羊人殺小游戲,祝愿看到文章的小伙伴都不是小羊人前... -
設計技巧 | 利用用戶評價提升下單轉化...
▲點擊 "TCC翻譯情報局 "關注,回復 "社群 "加入我們本文共5554... -
工作坊|2023迎接后疫情,社會創(chuàng)新設計...
點擊▲三分設關注,和10萬設計師一起成長設計關懷疫情下的社會創(chuàng)新... -
不止于視頻,讓精采內容沉浸起來
,“內容消費升級”是近年的刷屏熱詞,而當前最主流的內容呈現(xiàn)形態(tài)... -
世界看點:一篇文章教你實戰(zhàn)Docker容器數(shù)據(jù)卷
在上一篇中,咱們對Docker中的容器數(shù)據(jù)卷做了介紹。已經知道了容器...