网易云歌单歌曲 ,目前还仅仅只是实现这个功能,没有定义函数,也没有加入异常处理的部分
import urllib.request
import re
import os
import requests
from tqdm import tqdm
#获取url
url = input('url:')
#传入headers
header = {'authority': 'https://music.163.com/',
'user-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',}
#获得网页源码
r = requests.get(url, headers=header).text
#获得歌单名
title = re.search(r'>(.+)</h2>', r).group(1)
#获得歌曲列表[('id', 'name')]
songList = re.findall(r'/song\?id=(\d+)">(.+?)</a>', r)
print('歌单:', title)
#API源于:https://github.com/messoer(原作者要求)
API = 'https://v1.itooi.cn/netease/url?quality=flac&id='
#创建[歌单名]文件夹
if os.path.exists(title) == False:
os.mkdir(title)
#下载
for i in tqdm(songList):
#歌名合法化
rule = '[\\s\\\\/:\\*\\?\\\"<>\\|]'
musicName = re.sub(rule, '-', i[1])
#路径+歌名
Name = '.\\' + title + '\\' + musicName
#获取下载链接
Url = API + i[0]
#获取真实链接
song = urllib.request.urlopen(Url)
#判断后缀
try :
if (song.geturl()[-3:]) == 'lac' :
#加后缀
flac = Name + '.flac'
#下载
urllib.request.urlretrieve(Url, flac)
else :
mp3 = Name + '.mp3'
urllib.request.urlretrieve(Url, mp3)
666