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多线程http下载实现示例
Dec 30 Python
python去掉字符串中重复字符的方法
Feb 27 Python
Python标准库之Sys模块使用详解
May 23 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
python实现数据写入excel表格
Mar 25 Python
Python实现的计算器功能示例
Apr 26 Python
python tkinter控件布局项目实例
Nov 04 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python生成随机验证码代码实例解析
Jun 09 Python
python的launcher用法知识点总结
Aug 07 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 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代码
2010/02/16 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python装饰器练习题及答案
2019/11/01 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
英语自荐信常用语句
2013/12/13 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
应聘会计求职信
2014/06/11 职场文书
房屋过户委托书范本
2014/10/07 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
趵突泉导游词
2015/02/03 职场文书
父母教会我观后感
2015/06/17 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
php去除deprecated的实例方法
2021/11/17 PHP
golang连接MySQl使用sqlx库
2022/04/14 Golang
JavaScript中reduce()的用法
2022/05/11 Javascript
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技