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 自动提交和抓取网页
Jul 13 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Django 创建/删除用户的示例代码
Jul 24 Python
python 字符串常用方法汇总详解
Sep 16 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
Python读取实时数据流示例
Dec 02 Python
Python中的With语句的使用及原理
Jul 29 Python
python爬虫快速响应服务器的做法
Nov 24 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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网上调查系统
2006/10/09 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php命名空间学习详解
2014/02/27 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
node使用request请求的方法
2019/12/20 Javascript
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
Python异常处理例题整理
2019/07/07 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
python中的django是做什么的
2020/07/31 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
军训的自我鉴定
2013/12/10 职场文书
投资意向书
2014/07/30 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
贪污检举信范文
2015/03/02 职场文书
病假条格式范文
2015/08/17 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android