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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
Python数据结构之翻转链表
Feb 25 Python
详解Python之unittest单元测试代码
Jan 24 Python
python模仿网页版微信发送消息功能
Feb 24 Python
python设置环境变量的作用和实例
Jul 09 Python
python使用requests.session模拟登录
Aug 09 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
python实现学生信息管理系统(面向对象)
Jun 05 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
thinkphp实现数组分页示例
2014/04/13 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php数组键值用法实例分析
2015/02/27 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
Javasipt:操作radio标签详解
2013/12/30 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
python将图片文件转换成base64编码的方法
2015/03/14 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
python 装饰器的使用示例
2020/10/10 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
美德好少年主要事迹
2014/01/29 职场文书
党校个人总结
2015/03/04 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
创业计划书之餐饮
2019/09/02 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS