Python下载网易云音乐歌单
教程(假的)
b站链接:
https://b23.tv/av93837599
这期视频起源于本人本地歌曲被网易云音乐删掉的悲惨经历,不管你有没有,反正我有,我以前在qq音乐下载了一首肖邦的钢琴协奏曲,但是后来想再听的时候发现很悲剧被网易云删掉了(悲伤),所以萌生了把所有歌都下载下来的念头,话不多说,先展示一下成果
那么我就直接上源代码了
import requests
from bs4 import BeautifulSoup
import os
import retitle = ''def getMusic(ID,path):'''下载单个歌曲:param ID: 歌曲的id信息:param path: 歌曲的下载路径:return: None'''try:kv = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'}cloud = "http://music.163.com/song/media/outer/url?id="url=cloud+ID+".mp3"tmp = requests.get(url, headers=kv)tmp.raise_for_status()# tmp.encoding=tmp.apparent_encoding 不用解码 因为是二进制文件print("访问成功,正在下载,请稍后......")with open(path,"wb") as f:f.write(tmp.content)f.close()print("下载成功")except:print("访问错误")print("请确认你的网络连接或者输入id是否正确")def getMusicList(ID):'''获取歌单的信息--歌曲名字--歌曲的id :param ID: 歌单的id:return: 存放歌曲名字和id的字典'''headers = {'Referer': 'http://music.163.com/','Host': 'music.163.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',}#请求头 伪装成用户访问base_url = 'http://music.163.com/playlist?id='s = requests.session()#保持会话response = s.get(base_url+str(ID), headers=headers).contentss = BeautifulSoup(response, 'lxml') #使用bs4解析o( ̄ヘ ̄o#)main = ss.find('ul', {'class': 'f-hide'}) ls = main.find_all('a') #ls 是迭代器 存放所有歌的标签global titletitle = ss.find('h2', {'class': 'f-ff2 f-brk'}).string #获取歌单的名字print('一共{}首歌'.format(len(ls)))Total_dic = {'title':title}Music_dic = {} #声明字典for music in ls:Mname = music.textMID = str(music['href']).replace('/song?id=', '')print('Name : {:<30} \tID : {:^10}'.format(Mname, MID))Music_dic[Mname] = MID #存放进字典 key是name value是idTotal_dic['songlist'] = Music_dicreturn Total_dic #返回字典def getID():'''输入程序 利用正则表达式判断用户输入是否是正确的id:return: 歌单的id,以及bool值'''playlist_ID = input("请输入下载歌单的id : ")pattern = re.compile(r'\d+')ls = re.findall(pattern, playlist_ID)if len(ls)!= 0 :return playlist_ID, Trueelse:return 0, Falsedef main():'''主函数 执行下载:return: None'''while True:ID, flag = getID()if flag:listJson = getMusicList(ID)# 创建文件夹if os.path.exists(title):print('歌曲目录文件夹已存在')else:os.mkdir(title)print('已创建歌曲目录文件夹')dic = listJson['songlist']for name in dic.keys():print(name, end=' ')getMusic(dic[name], title + '/' + name + '.mp3')#下载每一首歌 第二个参数是路径 必须要加".mp3"breakelse:print('请输入歌单的id, 您有可能错误输入了歌单的网址')if __name__=='__main__':main()
以上就是全部
Python下载网易云音乐歌单相关推荐
- python3 下载网易云音乐歌单
1 安装scrapy 最简单的,万无一失的方法, 打开Anaconda的Navigator, 选择"ALL", 然后搜索"scrapy", 选中前面的对号, 右 ...
- python代码示例下载-Python下载网易云歌单歌曲的示例代码
今天写了个下载脚本,记录一下 效果: 直接上代码: # 网易云 根据歌单链接下载MP3歌曲 import requests from bs4 import BeautifulSoup def main ...
- Python数据分析之定制化网易云音乐歌单
最近朋友圈刷疯了的几件事: 圣诞节骗我艾特微信官方戴红帽 老的跟树皮似的骗我晒18岁皂片 明明开挂却骗我自己玩的跳一跳 网易云听歌报告告诉我最爱tfboy 支付宝关键词鄙视我太穷丢它脸 个人特别喜欢听 ...
- 零基础也能看懂python_零基础也能看懂的Python下载网易云音乐爬虫
Python Selenium(配置方法参照:Selenium配置) Chrome浏览器(其它的也可以,需要进行相应的修改) 解析 以前抓取过网易云网页的朋友可能都清楚网易云有反爬虫策略的,post时 ...
- 小项目实现:下载网易云某个歌单的全部音乐
第一步:用歌曲地址先实现一首歌的下载 利用: song_url (例如:https://m701.music.126.net/20190719164713/77733e070e7f9c68ac6ea2 ...
- python 爬虫爬取下载网易云音乐歌单的歌曲(需要使用JS的加密方法得出params去获取下载地址)
要点:1.js加密就是麻烦,只能百度寻找了!设计的加密模块binascii.Crypto.base64 2.requests.Session的用法,可以指定headers.cookies 3.可以用s ...
- python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单
通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...
- python音乐可视化_Python数据可视化:网易云音乐歌单
原标题:Python数据可视化:网易云音乐歌单 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告 ...
- Python下载网易云歌单歌曲,这个脚本你给多少分!
今天写了个下载脚本,记录一下 效果: 直接上代码: # 网易云 根据歌单链接下载MP3歌曲 import requests from bs4 import BeautifulSoupdef main( ...
最新文章
- 3行代码就能可视化Transformer的奥义 | 开源
- python培训好学吗-人工智能“速成班”Python好学吗 小心别被忽悠了
- Windows保护模式学习笔记(十三)—— PWTPCD
- Apache虚拟主机指南
- 在c语言中数据类型高低,C语言的数据类型
- python学习之老男孩python全栈第九期_day022作业
- 模因(meme)收集
- php正则表达式替换ubb,自定义ubb代码,preg_replace()函数的一些代码
- js pug 代码_Pug 代码 Code
- Content type ‘application/json;charset=UTF-8‘ not supp...
- KOL新消费品牌营销知多少
- Salesforce市值3000亿美元,中国CRM企业能复制成功吗?
- amp;#9733;平衡法则在生活中的应用
- TypeScript中的泛型
- 车牌识别大大提升智慧加油站管理水平
- oracle获取减一年,oracle日期减一年 oracle指定日期减一天
- CC1101调试入门
- 第八章以太网交换计算题及其解析[计算机网络]
- 物联网毕设 - 基于Kociemba算法和颜色识别的解魔方机器人 - 单片机
- FileSystemWatcher 监控文件变化