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

news2024/11/18 9:39:39

前言

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

环境使用:

  • 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)

尾语

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

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

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

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

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

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

相关文章

逻辑的极限

逻辑的极限&#xff0c;数学和沉思 发表于康托尔的天堂 当逻辑出错时会发生什么&#xff1f; 让我们看看为什么排除中间定律是错误的&#xff08;有时&#xff09;&#xff0c;发现数学核心的基本问题&#xff0c;然后再最终尝试解决出了什么问题。 您还将学习如何理解-1的负根…

Nvlddmkm错误

问题描述&#xff1a; 使用maya或多开应用&#xff0c;会不定期黑屏 电脑配置如下&#xff1a; 黑屏时&#xff0c;系统错误日志如下&#xff1a; 处理方式&#xff1a; 1、更换旧版本显卡驱动或更新显卡驱动 &#xff08;目前从Navid下载的都是新版本显卡驱动 &#xff…

Linux推出Debian 12.1,并进行多方面系统修复

据了解&#xff0c;Debian是最古老的 GNU / Linux 发行版之一&#xff0c;也是许多其他基于 Linux 的操作系统的基础&#xff0c;包括 Ubuntu、Kali、MX 和树莓派 OS 等。 此外&#xff0c;该操作系统以稳定性为重&#xff0c;不追求花哨的新功能&#xff0c;因此新版本的发布…

3ds Max图文教程: 创建致命的冠状病毒动画

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 病毒建模 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在透视视口中创建一个半径为 50&#xff0c;线段为 20 的 GeoSphere。 创建地球 步骤 3 打开修改器列表并将置换修改器应用于地理 球。 置换…

Python数据分析实战-dataframe筛选某字段是(精确匹配)某些值的记录(附源码和实现效果)

实现功能 Python数据分析实战-data[data[].isin([])]&#xff0c;筛选dataframe某字段是&#xff08;精确匹配&#xff09;某些值的记录 实现代码 import pandas as pddf {DataBase:[mysql,test,test,test,test],table:[user,student,course,sc,book]} df pd.DataFrame(df)…

SRC | 逻辑漏洞原理及实战

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽_网络安全,CTF,内网渗透-CSDN博客 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 逻辑漏洞基础 概述 分类 URL跳转漏洞 概述 危害 漏洞…

CGT Asia嘉年华 | 2023单细胞测序与精准医疗论坛10月广州召开

单细胞测序技术是生物技术发展史中的里程碑式技术&#xff0c;目前在肿瘤研究、免疫研究、神经生物学研究及发育研究等领域都有越来越广泛的应用。单细胞测序技术可以发现稀少肿瘤细胞并进行动态监控&#xff0c;有助于肿瘤的个性化和精准治疗&#xff0c;对于精准医疗的发展至…

开发必看!一文读懂Salesforce测试策略实用建议!

可靠的测试策略是确定重大决策的关键工具&#xff0c;以便参与测试的人员能够做出符合共同目标的决策。测试软件的次数越多&#xff0c;就越能从制定高级计划中受益。本文将详细介绍测试策略&#xff0c;以及如何建立测试策略的实用建议。 01 什么是测试策略&#xff1f; 测…

开发一个二方包,优雅地为系统接入ELK(elasticsearch+logstash+kibana)

先介绍整个ELK日志平台的架构。其中xiaobawang-log就是今天的主角。 xiaobawang-log主要收集三种日志类型&#xff1a; 系统级别日志&#xff1a; 收集系统运行时产生的各个级别的日志&#xff08;ERROR、INFO、WARN、DEBUG和TRACER&#xff09;&#xff0c;其中ERROR级别日志…

【指针一:穿越编程边界的超能力】

本章重点 字符指针 数组指针 指针数组 数组传参和指针传参 先回顾一下指针的概念有哪些&#xff1f; 指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节&#xff08;32位平台/64位平台&#xff09;。 指针是有类型&…

【java实习评审】对小说详情模块的更新判断以及数据库的商用字段设置比较到位

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块java同学的文档作品。该同学来自【山西农业大学】软件工程专业。 本项目亮点难点&#xff1a; 1 热门书籍在更新点的访问压力 2 书籍更新通知的及时性和有效性 3 书荒:同好推荐的可能性 4…

内部web服务器,部署HTTPS(nginx + 宝塔面板设置)

1、需求 在BS应用研发过程中&#xff0c;很多浏览器的功能需要在开启web服务器的https功能才能实现&#xff0c;例如chrome浏览器的系统剪切板&#xff08;CtrlC/CtrlV&#xff09;的使用&#xff0c;但是开发过程中&#xff0c;一般使用内部的服务器&#xff0c;只有IP地址&a…

vue3 - element-plus 上传各种 word pdf 文件、图片视频并上传到服务器功能效果,示例代码开箱即用。

效果图 在 vue3 项目中,使用 element plus 组件库的 el-upload 上传组件,进行文件、图片图像的上传功能示例。 完整代码 可直接复制,再改个接口地址。 在这里上传图片和文件是分成

软件测试简历项目经验该怎么写?【两年经验】

在写简历之前&#xff0c;我们先来看看失败者的简历和成功者的简历之间有什么区别。为什么成功者的简历可以在求职中起到“四两拨千斤”的作用&#xff0c;而失败者的简历却被丢进了垃圾桶&#xff0c;这两者到底有什么不同&#xff1f; 成功的简历与失败的简历 我们发现&…

google浏览器启用es6语法支持, 无需node webpack 浏览器端模块化加载

注意&#xff1a;最新版本的chrome浏览器已支持module语法&#xff0c;需要在web服务器环境下运行&#xff01; 设置浏览器启用es6语法功能&#xff1a; 1.在浏览器的url中输入&#xff1a;chrome://flags/ 设置下面选项为enable&#xff0c;重启浏览器。 准备代码&#xff…

FAP-inhibitors,FAP是一种II型跨膜丝氨酸蛋白酶,的反应特点及性质研究

资料编辑|陕西新研博美生物科技有限公司小编MISSwu PART1----产品描述 FAP inhibitors&#xff0c;其中FAP&#xff08;也称为seprase&#xff09;是一种II型跨膜丝氨酸蛋白酶。质膜和可溶性形式都表现出脯氨酸切割后的内肽酶活性&#xff0c;对Ala/Ser-Gly-Pro-Ser/Asn/Ala共…

【导航人机交互(HMI)模块功能】

在工业自动化领域&#xff0c;HMI是人机界面的缩写。在工业中使用HMI来控制和监控机器。如果没有HMI&#xff0c;就很难在工业中拥有良好的自动化流程。 人机界面的定义 人机界面 (HMI) 是一种用户界面&#xff0c;允许人类操作员与机器或过程进行交互。HMI通常用于工业环境&…

聚焦青少年近视管理现状,蔡司光学点亮乡村学童圆梦之旅

青少年近视管理问题一直是社会各界热议的焦点&#xff0c;尤其是近年来我国青少年近视率高居不下的问题突出&#xff0c;近视已经成为影响学生日常生活和学习用眼的重要因素之一。为贯彻落实关于学生近视问题的重要指示精神&#xff0c;并充分承担企业本身应具备的社会责任和使…

深入解析直播带货系统源码:打造高效互动的电商平台

直播带货成为了电商领域的热门趋势&#xff0c;为了构建一个高效互动的电商平台&#xff0c;我们需要深入解析直播带货系统的源码&#xff0c;探讨其实现的关键要素。 1. 初始化直播房间 首先&#xff0c;我们需要创建一个直播房间的功能&#xff0c;这样主播可以进入房间进…

获取对象中的第一个或者最后一个值

示例&#xff1a; 获取第一个值&#xff1a; ①可以先把它置换成数组使用Object.values(obj) 直接取第0个值就可以&#xff1a; Object.values(obj)[0] ②可以使用循环对象&#xff0c;使用break的原因是在它循环第一次的时候就停止(不推荐&#xff0c;因为后续值操作不了) …