现在听个歌,不是要这就是要那,乱七八糟的,下软件都下不赢。
于是决定加班熬夜来做一个,想怎么听就怎么听,大家自己看到就好,悄悄用,别告诉别人哈~
好了不闲聊,开整!
首先我们需要准备这些
环境
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
文章看的不理解,我还录制了详细的视频讲解,和源码一起打包好了,直接在文末名片自取。
爬虫实现基本流程
案例分为三部分:
- 单首歌曲采集
- 搜索下载功能 (单个/批量)
- 把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选择器简单使用
根据标签属性提取数据内容
- 查看数据对应标签位置
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.搜索下载
- 找搜索接口
- 歌名
- 歌曲ID
- 分析不同歌曲, 数据包有什么变化
- 歌曲变化 -> ID
- 只要过去所有歌曲ID你就可以采集所有歌曲内容
效果展示
6.打包EXE
pyinstaller -F xx.py
打包成功后,就能分享给其它不会py的小伙伴,愉快的使用了~
今天的分享就到这,关注小编不迷路~