用Python实战,畅享音乐海洋,一键采集你喜爱的音乐!

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

模块使用:

  • requests >>> pip install requests

  • re

第三方模块安装方法:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

实现案例流程: 采集数据有权限

一. 数据来源分析

  1. 明确需求

    • 明确采集网站以及数据

      网址:

      数据: 歌曲内容 / 歌曲标题

  2. 抓包分析

    通过开发者工具进行抓包<数据包>分析

    • 打开开发者工具: F12 / 右键点击检查选择network <网络面板>

    • 刷新网页: 让网页数据内容重新加载一遍

    • 找歌曲播放链接: 点击media 可以找到歌曲链接

    • 继续分析咱们歌曲链接是从哪里生成出来的 <歌曲信息数据包>

      搜索关键字找对应数据包

二. 代码实现步骤

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

  2. 获取数据, 获取服务器返回响应数据

    开发者工具: response

  3. 解析数据, 提取我们需要的数据内容

    歌曲标题 / 歌曲链接

  4. 保存数据, 获取歌曲数据内容,进行保存

url --> 唯一资源定位符 <网址>

代码展示

# 导入数据请求模块 第三方模块 需要安装 pip install requests
import requests
# 导入正则表达式模块
import re
# 模拟浏览器 <本节课案例一个ua就可以了>
headers = {
    # 用户代理 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
# 榜单链接
link = 'https://***m/yy/rank/home/1-8888.html?from=rank'
# 发送请求 获取响应数据
html_data = requests.get(url=link, headers=headers).text
"""
re.findall('数据', '数据源') --> 找到所有我们需要的数据内容
    从什么地方, 匹配什么数据
"""
music_id_list = re.findall('data-index="\d+" data-eid="(.*?)">', html_data)
for music_id in music_id_list:
    # 请求链接 歌曲信息链接
    源码、解答、教程、资料加V:qian97378免费领
    url = f'https://****/yy/index.php?r=play/getdata&dfid=08x5QL1nm3BC0EQQGl47oq2K&appid=1014&mid=c66d4af5f46463ab9559a65a35821df7&platid=4&encode_album_audio_id={music_id}&_=1690200743580'
    # 发送请求
    response = requests.get(url=url, headers=headers)
    # 歌名
    audio_name = response.json()['data']['audio_name']
    # 歌曲链接
    play_url = response.json()['data']['play_url']
    # 获取二进制数据
    content = requests.get(url=play_url, headers=headers).content
    with open('music\\' + audio_name + '.mp3', mode='wb') as f:
        f.write(content)
    print(audio_name, play_url)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值