当前位置: 首页 > news >正文

Python下载音乐

今天我就来分享一下我的方法:Python爬虫

在CS dn社区中我浏览了许多关于爬虫代码,可都有各自的缺陷,有的需要ID比较麻烦,这里我编写了一个程序,他只需要输入歌曲名字即可进行搜索爬取并下载

话不多说,下面的程序复制下来吧,如果你觉得好用,创作不易,就关注一下我,点个赞,加个收藏吧!

记住,一定要等到程序,全部运行完毕,不要急着停止去听,否则文件可能破损,听不了!

展示Python代码

from lxml import etree
import requests
import json
from concurrent.futures import ThreadPoolExecutor# 创建线程池
pool = ThreadPoolExecutor(max_workers=10)
# 请求头信息
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"
}
def download(id, name):# 构造下载链接url = f'http://music.163.com/song/media/outer/url?id={id}'# 发送下载请求response = requests.get(url=url, headers=headers).content# 将响应内容写入文件with open(name+'.mp3', 'wb') as f:f.write(response)# 打印下载完成消息print(name, '下载完成')
def get_id(url):# 发送请求获取页面内容response = requests.get(url=url, headers=headers).text# 使用XPath解析页面page_html = etree.HTML(response)# 提取歌曲列表信息id_list = page_html.xpath('//textarea[@id="song-list-pre-data"]/text()')[0]# 解析歌曲列表信息,并逐个提交下载任务到线程池for i in json.loads(id_list):name = i['name']id = i['id']author = i['artists'][0]['name']pool.submit(download, id, name+'-'+author)# 关闭线程池pool.shutdown()
if __name__ == '__main__':# 用户输入歌曲关键词keyword = input("请输入歌曲名称:")# 构造搜索URLsearch_url = f'https://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s={keyword}&type=1&offset=0&total=true&limit=5'# 发送搜索请求并获取响应内容response = requests.get(url=search_url, headers=headers).json()# 提取歌曲列表song_list = response['result']['songs']# 遍历歌曲列表,逐个提交下载任务到线程池for song in song_list:name = song['name']id = song['id']author = song['artists'][0]['name']pool.submit(download, id, name+'-'+author)# 关闭线程池pool.shutdown()

快去试试吧!只要输入你想爬取的歌名即可!

相关文章:

Python下载音乐

今天我就来分享一下我的方法:Python爬虫 在CS dn社区中我浏览了许多关于爬虫代码,可都有各自的缺陷,有的需要ID比较麻烦,这里我编写了一个程序,他只需要输入歌曲名字即可进行搜索爬取并下载 话不多说,下面的程序复制…...

PCL ICP配准高阶用法——统计每次迭代的配准误差并可视化

目录 一、概述二、代码实现三、可视化代码四、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 在进行论文写作时,需要做对比实验,来分析改进算法的性能,期间用到了迭代误差分布统计的比较分析,为直…...

电脑卸载软件怎么清理干净?电脑清理的5种方法

随着我们在电脑上安装和卸载各种软件,很多时候我们会发现,即使软件被卸载,其残留的文件和注册表项仍然存在于电脑中,这不仅占用了宝贵的磁盘空间,还可能影响电脑的性能。那么,如何确保在卸载软件时能够彻底…...

LLM流式方案解决方案和客户端解决方案

背景 接上一篇《LLM大模型统一封装接口解决方案》架构确定后,流式方案非常规请求,需要特殊处理。 本解决方案就是针对上一篇中所需要的流式(打字机效果进行编码) 什么是SSE SSE(Server-Sent Events,服务器发…...

ROS2 高效学习系列

ROS2 高效学习系列 1 说明2 正文 1 说明 2023 年,我们总结输出了 ROS高效入门系列 和 ROS高效进阶系列,系统学习了 ros1 基础知识和 ros 的机器人算法。由于 ros2 的普及,我们将系统学习 ros2 ,包括 ros2 基础知识和相关高级组件…...

SpringBoot + MyBatisPlus分页查询

文章目录 1.思路分析2.分页查询后端实现1.com/sun/furn/config/MybatisConfig.java 注入MyBatisPlus分页拦截器2.com/sun/furn/controller/FurnController.java 添加方法3.postman测试 3.分页查询前端实现1.src/views/HomeView.vue 引入分页导航条组件2.src/views/HomeView.vue…...

记使用sjson的一次小事故

1. 前言 之前在设计一个兼容函数的时候,使用了sjson动态设入参数,从而实现一些参数的兼容。大致的逻辑如下所示: // 有一堆不规则的json数据 {"a":"aaa","b":"bbb","any_key1":{"k…...

如何在iOS系统抓取log

前言:因为作者目前工作领域和苹果智能家居有关,然后发现一些bug其实是apple sdk原生code的问题,所以需要给apple提radar单,就需要抓ios端Log充当证据给apple看,其实ios抓log非常简单,大家感兴趣可以学习下哦…...

【嵌入式——QT】Charts常见的图表的绘制

【嵌入式——QT】Charts常见的图表的绘制 柱状图QBarSetQBarSeriesQBarCategoryAxis图示 饼图堆叠柱状图百分比柱状图散点图和光滑曲线图代码示例 柱状图 QBarSet 用于创建柱状图的数据集。 主要函数 setLabel():设置数据集标签 ;setLabelBrush()&am…...

pandas读写excel,csv

1.读excel 1.to_dict() 函数基本语法 DataFrame.to_dict (self, orientdict , into ) --- 官方文档 函数种只需要填写一个参数:orient 即可 ,但对于写入orient的不同,字典的构造方式也不同,官网一共给出了6种&#xff0c…...

清华大学突破性研究:GVGEN技术,7秒内从文字到3D高保真生成

引言:3D模型生成的挑战与机遇 随着计算机图形学的发展,3D模型的生成在各个行业中变得越来越重要,包括视频游戏设计、电影制作以及AR/VR技术等。在3D建模的不同方面中,从文本描述生成3D模型成为一个特别有趣的研究领域,…...

软件测试要学习的基础知识——黑盒测试

概述 黑盒测试也叫功能测试,通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,只检查程序功能是否按照需求规格…...

如何用Airtest脚本连接无线Android设备?

之前我们已经详细介绍过如何用AirtestIDE无线连接Android设备,它的关键点在于,需要先 adb connect 一次,才能点击 connect 按钮无线连接上该设备: 但是有很多同学,在使用纯Airtest脚本的形式连接无线设备时&#xff0c…...

c语言函数大全(C开头)

c语言函数大全(C开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…...

初始Redis关联和非关联

基础篇Redis 3.初始Redis 3.1.2.关联和非关联 传统数据库的表与表之间往往存在关联,例如外键: 而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合: {id: 1,name: "张三…...

Redis 更新开源许可证 - 不再支持云供应商提供商业化的 Redis

原文:Rowan Trollope - 2024.03.20 未来的 Redis 版本将继续在 RSALv2 和 SSPLv1 双许可证下提供源代码的免费和宽松使用;这些版本将整合先前仅在 Redis Stack 中可用的高级数据类型和处理引擎。 从今天开始,所有未来的 Redis 版本都将以开…...

生产者Producer往BufferQueue中写数据的过程

In normal operation, the producer calls dequeueBuffer() to get an empty buffer, fills it with data, then calls queueBuffer() to make it available to the consumer 代码如下: // XXX: Tests that fork a process to hold the BufferQueue must run bef…...

使用 Vite 和 Bun 构建前端

虽然 Vite 目前可以与 Bun 配合使用,但它尚未进行大量优化,也未调整以使用 Bun 的打包器、模块解析器或转译器。 Vite 可以与 Bun 完美兼容。从 Vite 的模板开始使用吧。 bun create vite my-app ✔ Select a framework: › React ✔ Select a variant:…...

如何设置IDEA远程连接服务器开发环境并结合cpolar实现ssh远程开发

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接&#xf…...

【项目管理后台】Vue3+Ts+Sass实战框架搭建二

Vue3TsSass搭建 git cz的配置mock 数据配置viteMockServe 建立mock/user.ts文件夹测试一下mock是否配置成功 axios二次封装解决env报错问题,ImportMeta”上不存在属性“env” 统一管理相关接口新建api/index.js 路由的配置建立router/index.ts将路由进行集中封装&am…...

解决grunt-webfont常见问题:跨浏览器兼容与Firefox字体加载故障排除指南

解决grunt-webfont常见问题:跨浏览器兼容与Firefox字体加载故障排除指南 【免费下载链接】grunt-webfont SVG to webfont converter for Grunt 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-webfont grunt-webfont 是一个强大的SVG转网页字体工具&…...

RePKG架构深度解析:Wallpaper Engine资源逆向工程与高性能转换方案

RePKG架构深度解析:Wallpaper Engine资源逆向工程与高性能转换方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的C#开源工具&a…...

FPGA在遥感机器学习中的优势与优化实践

1. FPGA在遥感机器学习中的核心优势解析 FPGA(现场可编程门阵列)在边缘计算场景中展现出独特的价值主张。与通用处理器不同,FPGA通过硬件级并行架构实现两个关键突破:首先是数据流驱动的计算模式,消除传统冯诺依曼架构…...

别再死记硬背了!用这5个Unity粒子特效案例,彻底搞懂ParticleSystem核心参数

别再死记硬背了!用这5个Unity粒子特效案例,彻底搞懂ParticleSystem核心参数粒子特效是游戏开发中不可或缺的视觉元素,从角色技能到环境氛围,都离不开ParticleSystem的灵活运用。但很多开发者在学习过程中陷入了一个误区——试图通…...

避坑指南:UE Niagara中设置粒子碰撞事件时,为什么勾选了‘需要固定ID’编译才通过?

UE Niagara粒子碰撞事件深度解析:为什么需要固定ID?在虚幻引擎的Niagara粒子系统中,碰撞事件是实现复杂交互效果的关键机制。许多开发者在初次使用"Generate Collision Event"模块时都会遇到一个令人困惑的现象:明明按照…...

PrismLauncher-Cracked常见问题解答:解决安装与使用中的15个难题

PrismLauncher-Cracked常见问题解答:解决安装与使用中的15个难题 【免费下载链接】PrismLauncher-Cracked This project is a Fork of Prism Launcher, which aims to unblock the use of Offline Accounts, disabling the restriction of having a functional Onli…...

机器学习引导的多目标运动规划:TSP与采样搜索的深度耦合

1. 项目概述:当机器人需要“跑腿”时,我们如何为它规划最优路线?想象一下,你是一个仓库管理员,手里有一台自动导引车(AGV),今天它的任务是从仓库的充电桩出发,依次去货架…...

Win7专业版电脑重启后时间服务总停止?三步设置让它稳定运行(附命令详解)

Win7时间服务异常终极修复指南:从原理到实战每次重启Win7电脑后,右下角的时间总是停留在过去?这可能是Windows时间服务(w32time)在捣鬼。作为系统核心组件之一,时间服务不仅影响时钟显示,更会干…...

差分隐私生成模型实战:从理论保障到隐私攻击与审计评估

1. 项目概述与核心挑战在医疗健康、社会科学研究以及政府统计等领域,处理包含个人敏感信息的表格数据是一项常态。这些数据是宝贵的研究资源,但其使用受到严格的隐私法规(如GDPR、HIPAA等)的约束。传统的数据脱敏或匿名化方法&…...

美国RTP全系列材料:全面解析高性能导电塑料产品服务

宏裕塑胶代理美国RTP全系列材料,专注于为制造业企业提供高性价比、稳定可控的工程塑料原料供应及全流程技术支持,凭借源头直采优势与专业技术服务,助力客户降低采购成本、提升生产效率,适用于塑胶制品厂、精密注塑厂、汽车零部件厂…...