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


Posted in Python onAugust 24, 2019

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

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)  #用scrapy的Selector,懒得用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)

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

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

以上这篇python 根据网易云歌曲的ID 直接下载歌曲的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中将阿拉伯数字转换成中文的实现代码
May 19 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
Numpy之文件存取的示例代码
Aug 03 Python
Selenium元素的常用操作方法分析
Aug 10 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
解决Python使用列表副本的问题
Dec 19 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
python内置进制转换函数的操作
Jun 02 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 #Python
python解释器spython使用及原理解析
Aug 24 #Python
python爬虫之爬取百度音乐的实现方法
Aug 24 #Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 #Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 #Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 #Python
简单分析python的类变量、实例变量
Aug 23 #Python
You might like
如何隐藏你的.php文件
2007/01/04 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
vue实现循环切换动画
2018/10/17 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
django框架cookie和session用法实例详解
2019/12/10 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
超市营业员求职简历的自我评价
2013/10/17 职场文书
简历自我评价模版
2014/01/31 职场文书
旷工检讨书1000字
2015/01/01 职场文书
客房领班岗位职责
2015/02/11 职场文书
商务英语求职信范文
2015/03/19 职场文书
文艺部部长竞选稿
2015/11/21 职场文书