python获取音乐文件

浏览器打开音乐地址

http://www.htqyy.com/top/hot

 

点击第一首歌曲,会打开新的网页并且可以获取 改歌曲的id,就是url中的33

在播放页面点击F12,打开开发者调试功能

 如下图所示,在script脚本中可以获取歌曲的下载数据

host: http://f5.htqyy.com/play

id:33

mp3: 33/mp3/7

拼接地址下载url: http://f5.htqyy.com/play/33/mp3/7

 

import requests
import re
import timesongIDs=[] #存放歌曲的sid
songNames=[] #存放歌曲的名称url="http://www.htqyy.com/top/hot" #歌曲列表的url#获取音乐榜单的网页信息
html=requests.get(url)strr=html.textpat1=r'sid="(.*?)"' #用于解析sid的正则
pat2=r'title="(.*?)" sid' #用于解析歌曲名称的正则idList=re.findall(pat1,strr) #从爬取到的网页内容中获取sid
titleList=re.findall(pat2,strr) #从爬取到的网页内容中获取歌曲名称songIDs.extend(idList) #将sid追加到列表
songNames.extend(titleList) #将歌曲名称追加到列表
print(idList)
print(titleList)# "http://f5.htqyy.com/play9/261/mp3/7
#开始下载音频文件
for i in range(0,len(songIDs)):# songUrl="http://f2.htqyy.com/play8/"+songIDs[i]+"/mp3/6"songUrl="http://f5.htqyy.com/play/"+songIDs[i]+"/mp3/7"songName=songNames[i]print(songUrl)#请求文件地址,获取文件资源
    data=requests.get(songUrl).contentprint("正在下载第",i+1,"首")#将文件保存到指定目录with open("C:\\music\\{}.mp3".format(songName),"wb") as f:f.write(data)time.sleep(0.5)

最后执行log如下:

"D:\Program Files\python\python.exe" D:/Project/Program/PythonWorkspace/FullProject/python_project/useful/get_music.py
['33', '1668', '58', '261', '62', '187', '55', '1430', '329', '87', '26', '1670', '57', '3', '108', '1621', '658', '23', '541', '56']
['清晨', '安妮的仙境', '心灵雨伞', '荡涤心灵的天籁之音', '月光下的凤尾竹', '日晷之梦(电台背景音乐)', '故乡的原风景', '宽阔的海水', '时间都去哪了', '梦里水乡', '你的微笑', '潮汐的旋律', '斯卡布罗市集(口哨曲)', '秋日私语', '牧羊曲', '太阳的后裔OST《Always》', '天空之城钢琴曲', '寂静之声', '夏日香气', '夜的钢琴曲五']
http://f5.htqyy.com/play/33/mp3/7
正在下载第 1 首
http://f5.htqyy.com/play/1668/mp3/7
正在下载第 2 首
http://f5.htqyy.com/play/58/mp3/7
正在下载第 3 首
http://f5.htqyy.com/play/261/mp3/7
正在下载第 4 首
http://f5.htqyy.com/play/62/mp3/7
正在下载第 5 首
http://f5.htqyy.com/play/187/mp3/7
正在下载第 6 首
http://f5.htqyy.com/play/55/mp3/7
正在下载第 7 首
http://f5.htqyy.com/play/1430/mp3/7
正在下载第 8 首
http://f5.htqyy.com/play/329/mp3/7
正在下载第 9 首
http://f5.htqyy.com/play/87/mp3/7
正在下载第 10 首
http://f5.htqyy.com/play/26/mp3/7
正在下载第 11 首
http://f5.htqyy.com/play/1670/mp3/7
正在下载第 12 首
http://f5.htqyy.com/play/57/mp3/7
正在下载第 13 首
http://f5.htqyy.com/play/3/mp3/7
正在下载第 14 首
http://f5.htqyy.com/play/108/mp3/7
正在下载第 15 首
http://f5.htqyy.com/play/1621/mp3/7
正在下载第 16 首
http://f5.htqyy.com/play/658/mp3/7
正在下载第 17 首
http://f5.htqyy.com/play/23/mp3/7
正在下载第 18 首
http://f5.htqyy.com/play/541/mp3/7
正在下载第 19 首
http://f5.htqyy.com/play/56/mp3/7
正在下载第 20 首Process finished with exit code 0

下载音乐位置:

 

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

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

相关文章

滑模控制器理论推导和matlab/simulink实例分享

滑模控制的运动轨迹主要分为两个方面:(1)系统的任意初始状态向滑模面运动阶段;(2)系统到达滑模面后并且慢慢趋于稳定的阶段。所以,对于滑模变结构控制器的设计,对应于系统运动的两个阶段,可以分为两个部分:…

从规划到落地,数字化工厂如何破局

随着第四次工业革命的推进,数字化工厂解决方案已经成为制造业转型升级的必经之路。然而,在实际推进过程中,许多企业却面临着规划难以落地、投资回报率低、人才短缺等问题。如何破局,实现数字化工厂的顺利转型,成为制造…

卡尔曼滤波

初见Kalman 假设我养了一只猪: 一周前,这只猪的体重是460.5kg。注意,在这里我用了0.5,表示其实我对这只猪一周前的体重并不是那么确定的,也就是说,46kg这个体重有0.5kg的误差。现在,我又养了这只…

计算机竞赛 python+opencv+机器学习车牌识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

使用插件实现pdf,word预览功能

效果 代码&#xff1a; 插件地址&#xff1a; https://github.com/501351981/vue-office <a-modalv-model:visible"visible":title"title"ok"handleOk":bodyStyle"bodyStyle":width"1200":maskClosable"false"…

2023年网络安全比赛--综合渗透测试(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23); 2.扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4); 3.靶机网站存在目录遍历漏洞,请将…

Linux设备树详解

Linux 设备树详解 Linux 操作系统早期是针对个人电脑设备而开发的操作系统&#xff0c;而个人电脑处理器产商较为单一&#xff08;例如只有 Intel&#xff0c;AMD&#xff09;同时个人电脑产商均使用 Intel 或 AMD 制造的处理器&#xff0c;业界形成了统一的总线/硬件接口标准…

JavaScript进阶 第二天

深入对象内置构造函数 一. 深入对象 创建对象三种方式构造函数实例成员&静态成员 1.1 创建对象三种方式 ① 利用对象字面量创建对象 const o {name: 哈哈 } ② 利用new Object 创建对象 const o new Object({ name: 哈哈 }) ③ 构造函数创建对象 1.2 构造函数 …

探索规律:Python地图数据可视化艺术

文章目录 一 基础地图使用二 国内疫情可视化图表2.1 实现步骤2.2 完整代码2.3 运行结果 一 基础地图使用 使用 Pyecharts 构建地图可视化也是很简单的。Pyecharts 支持多种地图类型&#xff0c;包括普通地图、热力图、散点地图等。以下是一个构建简单地图的示例&#xff0c;以…

认识Transformer:入门知识

视频链接&#xff1a; https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

浅谈 EMP-SSL + 代码解读:自监督对比学习的一种极简主义风

论文链接&#xff1a;https://arxiv.org/pdf/2304.03977.pdf 代码&#xff1a;https://github.com/tsb0601/EMP-SSL 其他学习链接&#xff1a;突破自监督学习效率极限&#xff01;马毅、LeCun联合发布EMP-SSL&#xff1a;无需花哨trick&#xff0c;30个epoch即可实现SOTA 主要…

资讯速递 | ArkUI-X 预览版已正式开源!

OpenHarmony项目群技术指导委员会&#xff08;以下简称“TSC”&#xff09;-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X&#xff0c;近期已正式开源 &#xff0c;开发者基于一套主代码&#xff0c;就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其…

LNMP环境搭建wordpress以及跳转后台报404解决

基于上文配置好的LNMP环境继续搭建wordpress 目录 一.到官网下载tar.gz包&#xff0c;并上传到Linux上&#xff0c;也可以通过复制链接地址进行下载 二. 将wordpress中的所有文件移动到你nginx.conf中指定目录中 三.为wordpress配置数据库 四.到浏览器进行注册 1.刚开始…

好用的安卓手机投屏到mac分享

工具推荐&#xff1a;scrcpy github地址&#xff1a;https://github.com/Genymobile/scrcpy/tree/master mac使用方式 安装环境&#xff0c;打开terminal&#xff0c;执行以下命令&#xff0c;没有brew的先安装brew brew install scrcpy brew install android-platform-too…

学习 Iterator 迭代器

今天看到一个面试题&#xff0c; 让下面解构赋值成立。 let [a,b] {a:1,b:2} 如果我们直接在浏览器输出这行代码&#xff0c;会直接报错&#xff0c;说是 {a:1,b:2} 不能迭代。 看了es6文档后&#xff0c;具有迭代器的就一下几种类型&#xff0c;没有Object类型&#xff0c;…

404. 左叶子之和

给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24示例 2: 输入: root [1] 输出: 0提示: 节点…

【NetCore】09-中间件

文章目录 中间件&#xff1a;掌控请求处理过程的关键1. 中间件1.1 中间件工作原理1.2 中间件核心对象 2.异常处理中间件:区分真异常和逻辑异常2.1 处理异常的方式2.1.1 日常错误处理--定义错误页的方法2.1.2 使用代理方法处理异常2.1.3 异常过滤器 IExceptionFilter2.1.4 特性过…

react实现对数组做增删改操作自定义hook

需求 实现对数组的增删改操作。 实现 import { useState } from react;const useArray (currList) > {const [list, setList] useState(currList);// 增const addItem (item) > {setList([...list, item]);};// 删const removeItem (idx) > {const _arr [...l…

实战指南,SpringBoot + Mybatis 如何对接多数据源

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难&#xff0c;MyBatis动态Sql标签解析 从零开始&#xff0c;手把手教你搭建Spring Boot后台工程并说明 Spring框架与SpringBoot的关联与区别 Spring监听器…

基于eBPF技术构建一种应用层网络管控解决方案

引言 随着网络应用的不断发展&#xff0c;在linux系统中对应用层网络管控的需求也日益增加&#xff0c;而传统的iptables、firewalld等工具难以针对应用层进行网络管控。因此需要一种创新的解决方案来提升网络应用的可管理性。 本文将探讨如何使用eBPF技术构建一种应用层网络…