Python下载网易云歌单歌曲的示例代码
作者:FORMAT-qi 发布时间:2023-06-10 17:06:28
标签: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/
复制粘贴到上方代码中,开始下载就好了
来源:https://blog.csdn.net/weixin_46602773/article/details/107824715


猜你喜欢
- 前言字典为动词“to yield”给出了两个释义:产出和让步。对于 Python 生成器中的 yie
- 很多时候,设计师们都会通过各种渠道去了解用户的需求,然而从这些渠道反馈回来的信息大部分只是用户的期望并不是真正的用户需求,但是很多时候这些期
- 最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下:1、scatter函数原型2、其
- 目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,-
- 用两个文件.GLOBAL.ASA和online.asp下面分别给出两个文件的源代码.呵呵,我也是菜鸟,大家加油哟!<SCR
- 现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一
- JSON到字典转化:dictinfo = simplejson.loads(json_str) 输出dict类型字典到JSON转化:json
- 实例如下所示:u = array([[1,2],[3,4]])m = u.tolist()#转换为listm.remove(m[0])#移除
- 本文实例讲述了Python使用xlrd读取Excel格式文件的方法。分享给大家供大家参考。具体如下:使用xlrd能够很方便的读取excel文
- 中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏。以下为在下处理中文标点的时候采用的两种方法:
- 小程序中英文混合排序问题在开发一个手机联系人列表的功能时,遇到需求是需要将联系人列表按照拼音顺序排序。而联系人列表是会出现中英文混合的情况。
- 前言虽然一直在说“去IOE化”,但是在国企和政府,Oracle的历史包袱实在太重了,甚至很多业务逻辑都是写在Oracle的各种存储过程里面实
- 目录互斥锁读写互斥锁先来看这样一段代码,所存在的问题:var wg sync.WaitGroupvar x int64func main()
- mark 一下使用 bootstrap selectpicker 遇到的一个小issue,作为下次查错使用$('.selectpic
- 点击vue路由跳转,控制台报错:Avoided redundant navigation to current location: &
- python求定积分计算from sympy import *x = symbols('x')print(integrate
- 一. 引入话题MySQL是一款广泛使用的开源数据库管理系统,它具有高效、稳定、可靠等优点,并支持多种操作系统和编程语言。然而,在使用MySQ
- 问题的起源早些时候使用with实现了一版全局进程锁,希望实现以下效果:with CacheLock("test_lock"
- 对于有的vps,系统默认安装了mysql。我们需要从我们的服务器、vps上卸载(移除)默认的mysql。那么如何(怎样)在ubuntu\De
- 精妙的"SQL"语句:◆复制表(只复制结构,源表名:a 新表名:b)SQL: select * into b from