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创建日历实例
Aug 21 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
python打开网页和暂停实例
Sep 30 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
python3获取当前目录的实现方法
Jul 29 Python
python求质数列表的例子
Nov 24 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
python中rc1什么意思
Jun 19 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/11/17 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
python中元类用法实例
2014/10/10 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Python Merge函数原理及用法解析
2020/09/16 Python
python matlab库简单用法讲解
2020/12/31 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
人力资源专业推荐信
2013/11/29 职场文书
公司业务员岗位职责
2014/03/18 职场文书
闭幕式主持词
2014/04/02 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python