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正则分组的应用
Nov 10 Python
python学习之编写查询ip程序
Feb 27 Python
Python中django学习心得
Dec 06 Python
Django中Forms的使用代码解析
Feb 10 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
Python subprocess库的使用详解
Oct 26 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
Python常用扩展插件使用教程解析
Nov 02 Python
python 爬取小说并下载的示例
Dec 07 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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
在for循环中length值是否需要缓存
2015/07/27 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
浅述python2与python3的简单区别
2018/09/19 Python
django的autoreload机制实现
2020/06/03 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
python开发一款翻译工具
2020/10/10 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
护士在校生自荐信
2014/02/01 职场文书
2014政务公开实施方案
2014/02/19 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
文明班级建设方案
2014/05/15 职场文书
党员志愿者活动总结
2014/06/26 职场文书
工作保证书
2015/01/17 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
少先队大队委竞选口号
2015/12/25 职场文书