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实现在sqlite动态创建表的方法
May 08 Python
python遍历 truple list dictionary的几种方法总结
Sep 11 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python django model联合主键的例子
Aug 06 Python
python dict乱码如何解决
Jun 07 Python
keras得到每层的系数方式
Jun 15 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 Python
总结三种用 Python 作为小程序后端的方式
May 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
2006/12/14 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
Yii使用技巧大汇总
2015/12/29 PHP
PHP中phar包的使用教程
2017/06/14 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
javascript中的new使用
2010/03/20 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
centos系统升级python 2.7.3
2014/07/03 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
C语言编程练习
2012/04/02 面试题
优秀学生评语大全
2014/04/25 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
女生抽烟检讨书
2014/10/05 职场文书
开票员岗位职责
2015/02/12 职场文书
家长通知书家长意见
2015/06/03 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android