前言

今天发的就是最实用的文章–让你用Python实现听歌自由,不用再担心自己的钱包了

文章末尾名片可直接领取代码

代码实现

导入模块

import os
import re
from urllib import parse
import requests
import sys
from PyQt5.QtGui import QIcon, QPixmap, QTextCursor
from PyQt5 import QtWidgets
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QDesktopServices
from music import Ui_Form  # 界面

界面主要内容

    def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.label.setText(_translate("Form", "请输入歌手/歌名:"))self.label_2.setText(_translate("Form", "下载页数:"))self.label_3.setText(_translate("Form", "歌曲数量:"))self.label_4.setText(_translate("Form", "音乐下载器"))self.label_5.setText(_translate("Form", "作者:青灯教育"))self.pushButton.setText(_translate("Form", "确定"))self.pushButton_2.setText(_translate("Form", "关闭"))self.pushButton_3.setText(_translate("Form", "源码领取:309488165"))

效果

搜索歌曲

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://***.cn/search/list?key=' + parse.quote(name)url = f'http://***.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

获取歌曲url

def get_purl(self, a):music_data = []for music in a:music_name = music[0]singer_name = music[1]songmid = music[2]purl = f'https://***/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).contentwith 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)

最后效果展示

周董的歌,大部分人还是听过吧,基本上都是需要会员滴

看我这,不就简简单单的下载保存好了吗 嘿嘿

最后

刚开始接触Python的宝子,有什么不懂的都可以私信我哦

我还准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可哦!

Python自制音乐下载器,实现听歌自由相关推荐

  1. 【Python】音乐下载器(for QQ music)

    之前学习Python时,在GitHub上发现这个很有意思的下载器(虽然界面很丑陋hhhh)... 就是现在还不会爬虫,自己不会写(菜哭) 界面是这样的:  这是代码-- # -*- coding: u ...

  2. Python爬虫-音乐下载器

    仅供参考学习,禁止用于非法用途 目录 1.第三方库准备 安装库 requests selenium webdriver 以及 PhantomJS 2.创建目录 创建主目录Music_Downloade ...

  3. 完整实例项目:使用python自制音乐播放器~

    今天使用python的pygame等模块制作了一个简单的音乐播放器,实现了很多好玩的功能,在这里和大家一起分享!这是笔者的第二篇博客,也是正式的完成一个小项目,希望获得大家的支持~ 播放器可以实现的功 ...

  4. 两步实现在网站左下角实现音乐播放器弹窗听歌

    一.播放样式 二.引入CSS+JS css,js下载地址:GitHub下载地址 2.1 新建模块musicPlayer.html <div id="player" th:fr ...

  5. 200行Python制作音乐下载器,支持所有主流的平台

    前言 对于自己喜欢的音乐的时候,总想着能下载下来作为自己的铃声,但是有一些歌曲下载的时候是需要收取一些费用的,或者是需要VIP会员的,今天小编教大家用Python下载音乐,支持目前网络上所有主流的音乐 ...

  6. 利用python自己动手制作一个音乐下载器,想听什么歌自己下就好了。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 一.前言 之前大家有没有过从电脑上下载歌曲MP3文件放到手机内存卡的经历,随着时代 ...

  7. python如何自制音乐软件_Python开发制作酷狗和QQ音乐下载器

    开发工具 **Python版本:**3.6.4 相关模块: requests模块 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 相关文件 ...

  8. 【Python爬虫】爬取网易云音乐,打造音乐下载器

    目录 搭建窗口 爬虫实现下载音乐 歌曲搜索 下载歌曲 绑定命令 生成可执行文件 感想 在前一篇文章,正好总结过了Tkinter以及canvas画布的使用,学以致用,用Tkinter来创建一个窗口,在此 ...

  9. 网页mp3提取器_用Python写一个酷狗音乐下载器!

    [这就是标题] 距离上一次发推送差不多有一个月了ヽ(ー_ー)ノ 做了一个小的酷狗音乐下载器,公众号内回复704就可以收到下载链接. 长下面这样. 双击打开,会提示让输入你要搜索的歌曲. 这里输入去流浪 ...

最新文章

  1. Oracle命令(一):Oracle登录命令
  2. C++中不允许重复定义全局变量
  3. Intel大坑之中的一个:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
  4. spring mvc 入门DispatcherServlet转发
  5. 计算机专业论文范文精选,计算机毕业论文提纲范文精选
  6. 代码质量管理工具】——sonar
  7. python 非线性多项式拟合_用python进行非线性回归-有什么简单的方法可以更好地拟合这些数据?...
  8. 二叉树经典题之将二叉树分层打印
  9. 购物车中 商品的选中状态之后的一些业务逻辑操作
  10. 低代码Web应用程序构造方法-ASP.NET Core 2.2单页应用程序(SPA)
  11. java实现文件下载的两种方式6_struts2实现文件下载功能
  12. 一文搞懂CAN总线协议帧格式
  13. 蓝屏维修记录: IRQL_NOT_LESS_OR_EQUAL、WiseTDIFw64与iaStorAVC问题
  14. iOS TestFlight Beta版本测试
  15. 计算机交换机配置实验心得,网络配置实验心得
  16. 如何把h5场景链接入微信公众号?
  17. 1v1对战答题小程序
  18. Java工程师(面试)
  19. 打印机form2尺寸_打印机纸张规格
  20. 汇编语言 VSCode编辑器的下载、安装与配置使用

热门文章

  1. 深度学习Week14-yolov5s.yaml文件解读(YOLOv5)
  2. 好东西来了!2017云栖大会300+份重磅资料下载
  3. C\C++真桌面贪吃蛇,桌面操控,有音乐音效“详解”
  4. Linux智能手表的浪潮即将向我们袭来
  5. Java下载海康历史视频并合并转码
  6. 手把手教你JDK+IDEA的安装和环境配置
  7. 学点英语 1 - 100
  8. 6.S081 Xv6 Lab 5: lazy page allocation
  9. oracle去重离子,oracle去重
  10. 成考高起专要参加英语计算机统考吗,2020年成人高考高起专英语考试大纲科目...