用Python开发一个音乐下载工具,所有音乐都能下载【附源码】

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


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


好了不闲聊,开整!

首先我们需要准备这些

环境

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…/music/402856
  • 数据: 歌曲链接
2.抓包分析

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

  • 打开开发者工具
    • F12 / 右键点击检查选择network 网络
  • 刷新网页
  • 通过关键字搜索找到对应数据位置
    • 关键字: 需要什么数据就搜什么数据
      • 先找歌曲链接地址(播放地址): 开发者工具 -> 网络 -> 媒体 -> 查看对应歌曲链接
      • 再根据链接中一段参数进行搜索


数据包地址: https://*******/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://******/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的小伙伴,愉快的使用了~

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值