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

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

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

好了不闲聊,开整!

首先我们需要准备这些

环境

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、明确需求

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

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%免费】

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

相关推荐
丈剑走天涯4 小时前
基于 Python 3 语法的 PyCharm 练习示例,涵盖列表操作、类型判断及数据清洗等核心知识点
windows·python·pycharm
————A4 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
可乐鸡翅yeah_4 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
可乐鸡翅yeah_4 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
2601_962203514 小时前
Java进阶07集合(续)
java·开发语言
金融小师妹5 小时前
多因子智能推演:黄金震荡回升,杰克逊霍尔“沃什首秀”政策如何重塑金价路径的AI预测框架
大数据·人工智能·python·线性回归
阿童木写作5 小时前
跨马翻译:AI批量图片翻译与视频字幕翻译工具推荐
人工智能·python·音视频
阿kun要赚马内5 小时前
MCP(Model Context Protocol,模型上下文协议)
人工智能·python
郑州光合科技余经理5 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
来了就未晚5 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习