Python下载网易云歌单歌曲的示例代码


Posted in Python onAugust 12, 2020

今天写了个下载脚本,记录一下

效果:

Python下载网易云歌单歌曲的示例代码

直接上代码:

# 网易云 根据歌单链接下载MP3歌曲
import requests
from bs4 import BeautifulSoup

def main():
  url = "https://music.163.com/#/playlist?id=3136952023" # 歌单地址 请自行更换
  if '/#/' in url:
    url = url.replace('/#/', '/')
  headers = {
    'Referer': 'http://music.163.com/',
    'Host': 'music.163.com',
    'cookie': '自己去网站拿,获取方式在下边',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  }

  s = requests.session()
  try:
    response = s.get(url, headers=headers).content
    soup = BeautifulSoup(response, 'lxml')
    lis = list(soup.find('ul'))
    fatherlis = ['歌单名:' + str(soup.find('h2').string)]
    for i in lis:
      sonlis = []
      sonlis.append(str(len(fatherlis)) + '.')
      sonlis.append(i.a.string)
      sonlis.append(str(i.a.get('href'))[str(i.a.get('href')).find('=') + 1:-1] + str(i.a.get('href'))[-1])
      fatherlis.append(sonlis)
  except:
    print("\n\t歌曲链接输入错误")
    exit('ERROR!')
  format = '{0:<10}\t{1:{3}<10}\t{2:<10}'
  print("从'{}'中找到了{}条歌曲".format(str(soup.find('h2').string), len(fatherlis) - 1))
  print('-------------------------------------------------------------------------------------------------')
  print('序号     歌曲名称    歌曲链接')
  for i in fatherlis:
    if fatherlis.index(i) == 0:
      continue
    else:
      print(
        format.format(i[0], i[1], 'http://music.163.com/song/media/outer/url?id=' + i[2] + '.mp3', chr(12288)))
      download_music(i[2],i[1])
  print('##########################下载完成##########################')

# 歌曲下载
def download_music(song_id,song_name):
  file = "./music/" # 保存音乐的文件路径
  wurl = "https://link.hhtjim.com/163/" # 外链地址
  song_url = wurl + song_id + ".mp3"
  # 获取歌曲16进制编码
  song = requests.get(song_url).content
  # 获取歌曲名称
  # 保存文件
  with open(file + song_name + '.mp3', 'wb') as f:
    f.write(song)
if __name__ == '__main__':
  main()

cookie获取方式

登录网易云web版 https://music.163.com/

Python下载网易云歌单歌曲的示例代码

复制粘贴到上方代码中,开始下载就好了

到此这篇关于Python下载网易云歌单歌曲的示例代码的文章就介绍到这了,更多相关Python下载网易云歌单内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python里对list中的整数求平均并排序
Sep 12 Python
Python中if __name__ == &quot;__main__&quot;详细解释
Oct 21 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
浅谈Python 函数式编程
Jun 20 Python
Python爬取12306车次信息代码详解
Aug 12 #Python
Python读取xlsx数据生成图标代码实例
Aug 12 #Python
Idea安装python显示无SDK问题解决方案
Aug 12 #Python
Python selenium如何打包静态网页并下载
Aug 12 #Python
Python selenium爬取微信公众号文章代码详解
Aug 12 #Python
PyQt5 QDockWidget控件应用详解
Aug 12 #Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 #Python
You might like
php中count获取多维数组长度的方法
2014/11/03 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
python浪漫表白源码
2019/04/05 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
大三预备党员入党思想汇报
2014/01/08 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
2015年共青团工作总结
2015/05/15 职场文书
情况说明书怎么写
2015/10/08 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python