python 根据网易云歌曲的ID 直接下载歌曲

2023-05-16

特么的,,,上次写了一堆,发现,原来下载网易云的歌曲根本不用这么费劲,,直接用

http://music.163.com/song/media/outer/url?id=这里填歌曲id.mp3 

这个URL就可以下载了,真特么操蛋!!

现在再来做一次!根据歌单下载歌曲


import requests,os,time,sys,re
from scrapy.selector import Selector

class wangyiyun():
    def __init__(self):
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
            'Referer': 'http://music.163.com/'}
        self.main_url='http://music.163.com/'
        self.session = requests.Session()
        self.session.headers=self.headers

    def get_songurls(self,playlist):
        '''进入所选歌单页面,得出歌单里每首歌各自的ID 形式就是“song?id=64006"'''
        url=self.main_url+'playlist?id=%d'% playlist
        re= self.session.get(url)   #直接用session进入网页,懒得构造了
        sel=Selector(text=re.text)   #scrapySelector,懒得用BS4        songurls=sel.xpath('//ul[@class="f-hide"]/li/a/@href').extract()
        return songurls   #所有歌曲组成的list
        ##['/song?id=64006', '/song?id=63959', '/song?id=25642714', '/song?id=63914', '/song?id=4878122', '/song?id=63650']

    def get_songinfo(self,songurl):
        '''根据songid进入每首歌信息的网址,得到歌曲的信息
        return'64006''陈小春-失恋王'''
        url=self.main_url+songurl
        re=self.session.get(url)
        sel=Selector(text=re.text)
        song_id = url.split('=')[1]
        song_name = sel.xpath("//em[@class='f-ff2']/text()").extract_first()
        singer= '&'.join(sel.xpath("//p[@class='des s-fc4']/span/a/text()").extract())
        songname=singer+'-'+song_name
        return str(song_id),songname

    def download_song(self, songurl, dir_path):
        '''根据歌曲url,下载mp3文件'''
        song_id, songname = self.get_songinfo(songurl)  # 根据歌曲url得出ID、歌名
        song_url = 'http://music.163.com/song/media/outer/url?id=%s.mp3'%song_id
        path = dir_path + os.sep + songname + '.mp3'  # 文件路径
        requests.urlretrieve(song_url, path)  # 下载文件

    def work(self, playlist):
        songurls = self.get_songurls(playlist)  # 输入歌单编号,得到歌单所有歌曲的url
        dir_path = r'C:\Users\Administrator\Desktop'
        for songurl in songurls:
            self.download_song(songurl, dir_path)  # 下载歌曲

if __name__ == '__main__':
    d = wangyiyun()
    d.work(2214059025)  

搞定!代码简单得一塌糊涂,,真特么费脑子!!




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 根据网易云歌曲的ID 直接下载歌曲 的相关文章

  • Shell命令

    shell命令 xff1a 操作系统的一个字符串操作 1 关机 xff1a halt reboot xff08 重启 xff09 poweroff 查看或匹配网卡 xff1a ifconfig 帮助手册 man 清屏 xff1a clear
  • 1.20——golang环境配置(在Mac OS上)【没用过】

    本节主要为大家讲解如何在Mac OS上安装Go语言开发包 xff0c 大家可以在Go语言官网下载对应版本的的安装包 xff08 https golang google cn dl xff09 xff0c 如下 图所示 安装Go语言开发包 M
  • spring自动装配Bean的五种方式

    no xff1a 默认方式 xff0c 手动装配方式 xff0c 需要通过ref设定bean的依赖关系byName xff1a 根据bean的名字进行装配 xff0c 当一个bean的名称和其他bean的属性一致 xff0c 则自动装配by
  • ZCU106的FMC接口AD/DA(全网唯一、全网最详)

    马上就要毕业啦 xff0c 好久没写文章了 xff0c 今天给大家带来硕士期间的最后一次AD DA实验的实验记录 xff0c 废话少说 xff0c 先看连接与视频 连接 视频 我做的实验是AN108 43 FL9613的DA与AD回环测试
  • BigDecimalUtils BigDecimal加减乘除

    span class token keyword public span span class token keyword class span span class token class name BigDecimalUtil span
  • 关于引用的疑问

    1 变量名回顾 变量 是一段实际连续存储空间的别名 程序中通过变量 来申请并命名存储空间 通过变量 的名字可以使用存储空间 问题 xff1a 一段连续的存储空间只能有一个别名吗 xff1f 2 c 43 43 中引用 引用 可以看作一个已定
  • 在Ubuntu系统中安装字体(以安装华文行楷和方正舒体为例)

    背景 xff1a 笔者在做一个项目时 xff0c 因为项目是在windows系统中开发的 xff0c 用react写的页面 xff0c 在windows本地验证是没有问题 xff0c 但是部署到服务器 xff08 服务器系统为Ubuntu
  • Linux Shared Memory的查看与设置

    1 Linux Check Memory Usage 2 How to Check Shared Memory on Linux 3 Shared Memory Configuration 共享内存就是进程之间可以共享的一段内存 xff0c
  • java构造和生成固定的json格式(geojson为例)

    java构造和生成json格式 xff08 geojson为例 xff09 一 所要构造的json格式 二 思路和步骤 1 题外说明 本文是先解析读入的txt文件 xff0c 然后建立对应的java类来接受解析的某些值 xff0c 用了自己
  • Android 程序退出 Toast还一直显示 解决方案

    今天 xff0c 改了个bug xff1a 点击两次返回程序退出 如大家所想 xff0c 第一次点击用Toast提示 xff0c 如果在两秒内再次点击那么程序退出 在我们平时写App的时候 xff0c 习惯用Application的上下文对
  • 在word中快速查找所有图片

    选择导航窗格 点击搜索框里的小三角 选择查找图形
  • systemctl命令详解

    在linux内核启动完以后 xff0c 会执行 etc rc d rc local脚本 xff0c 最后再执行 bin login程序 xff0c 进入用户登陆界面 传统的做法 xff0c 如果要在linux里添加开机自启的命令 xff0c
  • Linux系统之下开启tomcat控制台,查看代码运行情况

    方法 xff1a 进入tomcat安装文件夹 xff0c 打开命令行 如下操作 xff1a bin gt startup sh cd logs tail f catalina out
  • 四元数姿态表示总结

    文章目录 简介用法一 xff1a 欧拉角 四元数1 Euler2Quat xff1a 2 Euler 2 Vect 2 Quat xff1a 3 Quat 2 Euler xff1a 用法二 xff1a 旋转矩阵 四元数1 Quat 2 R
  • 调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)

    记录OpenCV正确安装与调用过程 我的CMakeLists txt如下 xff1a cmake minimum required span class token punctuation span VERSION span class t
  • 解决git fatal:无法找到‘https‘的远程助手

    解决git fatal 无法找到 https 的远程助手 1 问题 今天使用git拉去代码的时候出现 fatal 无法找到 39 https 39 的远程助手错误 xff0c 如下所示 span class token function g
  • [Android Framework]Android 11系统Update-API时Lint检查问题解决和记录

    1 什么是Lint检查 Android Lint 是 ADT 16 xff08 和工具 16 xff09 中引入的一个新工具 xff0c 用于扫描 Android 项目源以查找潜在的错误 Android11之前 xff0c 我们在进行Fra
  • openEuler22.03LTS网卡配置

    VmWare完成安装openEuler xff0c 修改网卡配置文件 xff0c 重启network报错service not found xff0c 因为欧拉使用nmcli管理网络 按照centos7的经验 xff0c 修改ifcfg配置
  • 利用在线词典批量查询英语单词

    进来遇到很多英语生词 xff0c 工具书上给的解释错误百出 xff0c 而很多在线词典不但可以给出某个单词的解释 xff0c 而且有大量的示例 xff0c 因此猜想利用在线词典批量查询这些单词 怎么实现呢 xff1f 首要问题是如何自动获取
  • linux svn服务器搭建 centos 搭建svn服务器

    本文是在CentOS中采用yum安装方式 优点 xff1a 简单 xff0c 一键安装 xff0c 不用手动配置环境变量等 缺点 xff1a 安装位置为yum默认 xff0c 比如我们公司服务器上安装软件有自己的规定 xff0c 一般会采用

随机推荐

  • Firewall 防火墙常用命令

    Firewall开启常见端口命令 xff1a 注意 permanent意思是 永久生效 firewall cmd zone 61 public add port 61 80 tcp permanent firewall cmd zone 6
  • 第二章——keil5修改工程名字

    第一章 stm32f103建立工程 第二章 keil5修改工程名字 目录 1 修改模板文件名 2 修改工程文件名 3 删除中间文件 4 修改输出中间变量文件名 5 点击编译 xff0c 改名成功 1 修改模板文件名 把第一章建立的工程模板的
  • origin2021如何切换中文界面

    origin2021如何切换中文界面 一 直接设置Change Language二 Change Language菜单是灰色的 一 直接设置Change Language 1 单击 Help gt Change Language 2 将La
  • fbe 业务流程分析

    参考链接 xff1a https www cnblogs com bobfly1984 p 14090078 html 总结 根据 data unencrypted key和 data misc vold user keys de 0 路径
  • js的字符串匹配方法match()和Java的字符串匹配方法matches()的使用?以换行符替换为其他字符为例

    js的字符串匹配方法match 和Java的字符串匹配方法matches 的使用 xff1f 以换行符替换为其他字符为例 js的 xff1a str match n igm length会返回str中有多少个换行str match bc i
  • UNIX 环境高级编程

    与你共享 xff0c 与你共舞 xff01 UNIX环境高级编程 xff08 第3版 xff09 是被誉为UNIX编程 圣经 xff1b 书中除了介绍UNIX文件和目录 标准I O库 系统数据文件和信息 进程环境 进程控制 进程关系 信号
  • 华为服务器WebBios创建磁盘阵列

    步骤 1 启动服务器按ctrl 43 h进入WebBios 2 点击Start确定进入下一步 3 左栏的Configuration Wizard添加raid 4 选New Configuration新建raid即可 5 选中硬盘 然后再按N
  • goland 无法编译输出 Compilation finished with exit code 0

    golang编写程序无法输出
  • 分享关于AI的那些事儿

    机器人很厉害 给人治病的ibm 的Watson 沃森 击败世界围棋冠军的AlphaGo阿尔法狗 陪你聊天的机器人 数据标注 木马识别 恶意访问拦截 智能家居 但是17年首次出现了机器人获得国籍 这个机器人叫做索菲亚 这是一个类似人类的机器人
  • String Evolver, My First Genetic Algorithm

    When reading Evolutionary Computation for Modeling and Optimization 1 I found following problem in section 1 2 3 A strin
  • MongoDB特点及功能介绍

    一 MongoDB 介绍 1 基本概念 MongoDB是一个高性能 xff0c 开源 xff0c 无模式的文档型数据库 xff0c 是当前NoSQL数据库产品中最热门的一种 它在许多场景下可用于替代传统的关系型数据库或键 值存储方式 xff
  • 线程同步以及线程调度相关的方法

    wait xff1a 使一个线程处于等待 xff08 阻塞 xff09 状态 xff0c 并且释放所持有的对象的锁 xff1b sleep xff1a 使一个正在运行的线程处于睡眠状态 xff0c 是一个静态方法 xff0c 调用此方法要处
  • 智能医疗辅助诊断——调查与思考

    背景 为什么要做智能医疗 xff1f 优质医疗资源不足且增长缓慢各地方医疗资源分配不均客观条件满足 xff0c 人工智能技术发展 xff0c 算法 算力 数据齐备 目录 指出 xff0c 医用软件按照预期用途分为辅助诊断类和治疗类 诊断功能
  • WebMvcConfigurer配置HandlerInterceptor拦截器失效

    1 前言 Springboot2 0之前 xff0c 实现拦截器功能的配置类是通过继承 extends WebMvcConfigurerAdapter类完成的 xff0c 最近项目把Springboot升级到了Springboot2 X x
  • ubuntu deepin wechat中文乱码解决

    deepin wechat 中文乱码解决方案 方案一 执行以下命令打开文件 gedit opt deepinwine tools run sh 找到WINE CMD 修改为 WINE CMD span class token operato
  • 使用k-近邻算法识别手写数字

    本文摘自 机器学习实战 案例 xff0c 对其进行了代码更新与注释 实战介绍 使用k 近邻分类器构造手写识别系统 xff0c 为了简单起见 xff0c 系统只识别0 9 xff0c 需要识别的数字已经使用图形处理软件 xff0c 处理成具有
  • Android开发:Fragment中优雅使用ViewBinding【Java】

    目录 前言 官网示例 封装 前言 ViewBinding可以帮助我们减少代码中的大部分findViewById xff0c 官网中提到了它的优点和缺点 xff1a Null 安全 xff1a 由于视图绑定会创建对视图的直接引用 xff0c
  • c++ 读取UTF-8编码文本

    这个是苏州大学一个有关NLP的选修课的第一个作业 xff0c 刚开始有点摸不着头脑 xff0c 随着慢慢接触有点理解了老师的用心 任务是给定一个给一段汉语文本 xff0c 将文本切分开为单个character xff0c 并在charact
  • 一次完整的http请求全过程(知识体系版)

    最差的面试体验 面试官评价 xff1a 除了学历 xff0c 和培训班出来的没区别 确实 xff0c 很多东西我只是会用 面完回来 xff0c 我发现我确实连一个完整的http请求如何发送都不明白 失败并不可怕 但是一定得把失败的悲痛化成力
  • python 根据网易云歌曲的ID 直接下载歌曲

    特么的 xff0c xff0c xff0c 上次写了一堆 xff0c 发现 xff0c 原来下载网易云的歌曲根本不用这么费劲 xff0c xff0c 直接用 http music 163 com song media outer url i