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操作MongoDB详解及实例
May 18 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
python用requests实现http请求代码实例
Oct 31 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
5款实用的python 工具推荐
Oct 13 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
python中返回矩阵的行列方法
2018/04/04 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
研究生给导师的自荐信
2015/03/06 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
Linux中如何安装并部署Redis
2022/04/18 Servers
Django框架中表单的用法
2022/06/10 Python