【附源码】用Python开发一个音乐下载工具,并打包EXE文件,所有音乐都能搜索下载!

news2024/9/20 14:15:03

现在听个歌,不是要这就是要那,乱七八糟的,下软件都下不赢。

在这里插入图片描述

于是决定加班熬夜来做一个,想怎么听就怎么听,大家自己看到就好,悄悄用,别告诉别人哈~

在这里插入图片描述

好了不闲聊,开整!

首先我们需要准备这些

环境

Python 3.10
Pycharm

模块

import requests >>> pip install requests   
import parsel >>> pip install parsel  
import prettytable >>> pip install prettytable   
import os  

打包exe程序:

pyinstaller -> pip install pyinstaller 

爬虫实现基本流程

案例分为三部分:

  1. 单首歌曲采集

  2. 搜索下载功能 (单个/批量)

  3. 把py程序打包成exe软件

一、数据来源分析

1、明确需求

明确采集的网站以及数据内容

  • 网址: https://www.gequbao.com/music/402856

  • 数据: 歌曲链接

2.抓包分析

通过浏览器开发者工具分析对应的数据位置

  • 打开开发者工具

  • F12 / 右键点击检查选择network 网络

  • 刷新网页

  • 通过关键字搜索找到对应数据位置

  • 先找歌曲链接地址(播放地址): 开发者工具 -> 网络 -> 媒体 -> 查看对应歌曲链接

  • 再根据链接中一段参数进行搜索

  • 关键字: 需要什么数据就搜什么数据

在这里插入图片描述

数据包地址: https://www.gequbao.com/api/play_url?id=402856&json=1

二、代码实现步骤

1.发送请求

模拟浏览器对于url地址发送请求

# 导入数据请求模块 import requests """发送请求"""  
# 模拟浏览器 (请求头)  
headers = {  
# User-Agent 用户代理, 表示浏览器基本身份信息  
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'  
}  
# 请求网址  
url = 'https://www.gequbao.com/api/play_url?id=402856&json=1' # 发送请求  
response = requests.get(url=url, headers=headers)  

2.获取数据

获取服务器返回响应数据

# 获取响应json数据  
json_data = response.json()  

3.解析数据

提取我们需要的数据内容
css选择器简单使用
根据标签属性提取数据内容

  1. 查看数据对应标签位置
4.保存数据

获取歌曲内容, 保存到本地文件夹

# 对于歌曲链接发送请求, 获取歌曲内容  
music_content = requests.get(url=play_url, headers=headers).content  
# 数据保存  
with open(f'music\\{download_title}-{download_singer}.mp3', mode='wb') as f:  
    # 写入数据  
    f.write(music_content)  
print(f'{download_title}歌曲下载完成!')  

5.搜索下载
  1. 找搜索接口
  • 歌名

  • 歌曲ID

  1. 分析不同歌曲, 数据包有什么变化
  • 歌曲变化 -> ID

  • 只要过去所有歌曲ID你就可以采集所有歌曲内容

在这里插入图片描述

效果展示

在这里插入图片描述

6.打包EXE
pyinstaller -F xx.py  

打包成功后,就能分享给其它不会py的小伙伴,愉快的使用了~

资料包也已经打包好了,朋友们如果需要可以威x信扫描下方二维码免费获得【保证100%免费】
在这里插入图片描述

今天的分享就到这,关注小编不迷路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新书速览|循序渐进Vue.js 3.x前端开发实践

《循序渐进Vue.js 3.x前端开发实践》 本书内容 《循序渐进Vue.js 3.x前端开发实践》由一位拥有丰富前端开发经验的架构师撰写,旨在通过详尽的理论知识讲解和丰富的实践练习,帮助初学者深入掌握Vue.js框架,并能够独立开发商业级别的Web应用程…

【题解】CF1993D

目录 翻译思路总代码 翻译 原题链接 思路 容易发现,无论如何操作,最后剩下的数量是一定的,记剩下的数组中中位数的位置为 m m m(从1开始记),注意不能将数组删空。有: 剩余数组的长度 L ( n …

windows@移除资源管理器中的网盘等软件的图标@一键移除方案

文章目录 abstract设置方案移除注册表(不推荐单独使用)设置访问权限GUI设置powershell方案 利用powershell设置相应注册表(一键执行脚本)移除所有用户对指定注册表路径的访问权限移除所有权限但保留管理员👺 abstract 国内的云盘等软件比如百度网盘,夸克网盘,wps等…

轻量级模型汇总解读——涉及MobileNet、ShuffleNet、GhostNet、EfficientNet、NasNet、轻量transformer

前言:最近需要将模型移植到瑞芯微rv1106上运行,相比于rv1126 NPU的2.0T算力,它的算力更小,只支持0.5T的算力,而且rv1106目前只支持int8量化,为了保证模型推理在满足精度要求的情况下,保证时间尽…

基于C++实现(控制台)停车场管理系统

停车场管理系统设计报告 1 需求分析 1.1问题描述 停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放…

Python_两个jpg图片文件名称互换

项目场景 处理Adobe Photoshop导出的两个切片的顺序错误问题 小编在进行图片切片处理的时候,发现用PS导出的切片顺序错误,例如用PS导出的切片分别为test_01.jpg,test_02.jpg,但实际的使用需求是将两个图片的顺序调换&#xff0c…

IC开发——Verilog简明教程

1. 基础概念 1.1. 逻辑值 逻辑0,低电平,对应电路中接地GND。 逻辑1,高电平,对应电路中的电源VCC。 逻辑Z,高阻态,对应电路的悬空。 逻辑X,未知态,数据仿真中可能存在,如…

Delphi Web和Web服务开发目前有哪些选择

Delphi Web和Web服务开发目前有哪些选择 Delphi Web和Web服务开发目前有以下几个选择: Delphi MVC Framework(https://github.com/delphimvcframework/delphimvcframework):这是一个开源的Delphi Web框架,基于MVC&am…

小程序uniapp关闭手势返回操作

需求:进入当前页面后,无法返回其他页面,禁止所有返回操作(手势返回、左上角返回按钮等) 解决: 方法一:wx.enableAlertBeforeUnload wx.enableAlertBeforeUnload 在onLoad里调用: on…

-isystem isystem 实验记录

1,isystem 的理论 2,实验方案 $ tree . ├── inc111 │ └── test.h ├── inc222 │ └── test.h └── src ├── a.out └── hello.c inc111/test.h: #pragma once#define NUM 111 inc222/test.h #pragma once#define N…

2024年9月中国数据库排行榜:openGauss系多点开花,根社区优势明显

在墨天轮发布的9月中国数据库流行度排行榜中,中国数据库产业格局进一步聚集刷新,呈现出3大显著特征: 开源势力力争上游显优势领先潮流;openGauss 开源根社区优势明显;阿里华为两极鼎立云上云下各争先; 开…

2024年第二届《英语世界》杯全国大学生英语听力大赛

下周开考! 一、主办单位 商务印书馆《英语世界》杂志社 二、时间安排 赛事报名时间:即日起-2024年11月15日 正式比赛阶段:第一场:2024年9月22日10:00-22:00 第二场:2024年10月27日10:00-22:00 第三场&#xff1…

安装2024最新版Android Studio 最详细教程(带图展示)

一、安装JDK (1)首先在除C盘以外的盘建立文件夹,分别保存软件位置,JDK位置与SDK位置, 特别注意:所有文件名中不要出现空格,而且每个文件夹都是为空的状态 这里我是在D盘中操作。 &#xff0…

综合型医院适合什么样的数据摆渡方式,才能服务与安全兼顾?

综合型医院,是提供全面医疗服务的综合型医院。综合型医院的服务对象广泛,包括儿童、成人、老年人等各年龄段的人群,以及患有各种疾病的患者。它们通过提供全面的医疗服务,保障人民群众的健康需求,是医疗卫生事业的重要…

IP-adapter masking

https://github.com/huggingface/diffusers/issues/6802https://github.com/huggingface/diffusers/issues/6802

Java后端编程语言进阶篇

第一章 函数式接口 函数式接口是Java 8中引入的一个新特性,只包含一个抽象方法的接口。 函数式接口可以使用Lambda表达式来实现,从而实现函数式编程的特性。 使用 FunctionalInterface标识接口是函数式接口,编译器才会检查接口是否符合函数…

linux-L3-linux 复制文件

linux 中要将文件file1.txt复制到目录dir中,可以使用以下命令 cp file1.txt dir/复制文件 cp /path/to/source/file /path/to/destination移动 mv /path/to/source/file /path/to/destination复制文件夹内的文件 cp -a /path/to/source/file /path/to/destinati…

孟德尔随机化分析和GWAS分析有什么区别?

大家好,我是邓飞。 最近一直在研究孟德尔随机化分析,已经从概念到实操了,程序已经跑通了,很开心。这几天写的博客: 孟德尔随机化的术语理解 从一篇孟德尔随机化文章看MR常见结果形式 对于GWAS分析,从原…

LRELHLNNN;亲水性抗肝纤维化多肽作为基础肽;I型胶原蛋白靶向肽;九肽LRELHLNNN

【LRELHLNNN 简介】 LRELHLNNN是一种多肽,它能够选择性地结合到I型胶原蛋白,具有亲和力为170 nM。LRELHLNNN是由9个氨基酸组成,其氨基酸序列为H-Leu-Arg-Glu-Leu-His-Leu-Asn-Asn-Asn-OH。LRELHLNNN因其与I型胶原蛋白的高亲和力而在生物医学领…

密码学---黄道十二宫

✨简单理解的概念:是一种换位密码。 🎀破解需要用到对角线的方式:第一个H,先向下移动1位,再向右移动2位,依次类推。 🎀接着对对角线重新排列,就能得到一段有序的代码 🎀 …