网易云批量下载工具
import requests
from lxml import etree
import datetime
import time
curr_time=datetime.datetime.now()
times = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
print(f' 现在是:{times}')
print('*********欢迎使用网易云VIP音乐批量下载工具**********')
url_source=input('请输入网易云音乐列表地址(url):')
url=url_source
domain='http://music.163.com/song/media/outer/url?id='
html_str = requests.get(url).text
#print(type(html_str))
result = etree.HTML(html_str)
#print(type(result))
#song_ids = result.xpath('//a[contains(@href,"/song?")]/@href')
song_ids = result.xpath('//a[contains(@href,"/song?")]/@href') # 歌曲id
song_names = result.xpath('//a[contains(@href,"/song?")]/text()') # 歌名
count=len(song_ids)
print('该列表共有{}首歌曲,开始下载.......'.format(str(count)))
time.sleep(3)
#print(song_ids)
i=0
for song_id,song_name in zip(song_ids,song_names):
#print(song_id)
#print(song_name)
sult_id=song_id.strip('/song?id=')
#print(sult_id)
#resulturl=domain+sult_id
#print(resulturl)
if ('$' in sult_id) == False:
# # print(count_id)
song_url = domain + sult_id # 拼接url
#print(song_url)
i += 1
mp3 = requests.get(song_url).content
with open('新歌/{}.{}.mp3'.format(i, song_name), 'wb') as file:
file.write(mp3)
print('歌曲{}{}.mp3下载成功!'.format(i,song_name))