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中进行自动化单元测试的教程
Apr 15 Python
Python中的pass语句使用方法讲解
May 14 Python
Python批量修改文本文件内容的方法
Apr 29 Python
详解python中的 is 操作符
Dec 26 Python
PyQt5每天必学之组合框
Apr 20 Python
Python拼接字符串的7种方法总结
Nov 01 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
基于python实现上传文件到OSS代码实例
May 09 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
k-means & DBSCAN 总结
Apr 27 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中文转拼音的实现代码
2014/02/11 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
修改发贴的编辑功能
2007/03/07 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Django rest framework实现分页的示例
2018/05/24 Python
python实现自主查询实时天气
2018/06/22 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python MD5加密的示例
2020/10/19 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
初婚未育证明
2014/01/15 职场文书
专家推荐信模板
2014/05/09 职场文书
计生专干事迹
2014/05/28 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
党的群众路线调研报告
2014/11/03 职场文书
圆明园观后感
2015/06/03 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
放假通知怎么写
2015/08/18 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
MySQL的索引你了解吗
2022/03/13 MySQL
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers