话不多说上代码把
# 利用try检查以下模块是否有未安装的,如有未安装的会执行except进行安装 try: if __name__ == '__main__': from os.path import dirname from requests import get from time import sleep from re import sub class Music: def __init__(self): self.id = int self.url = str self.out = 10 self.main_url = str self.file_name = None self.music_163 = 'http://music.163.com/song/media/outer/url' self.headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"} def save(self): mp3 = get(self.url, headers=self.headers) self.file_name = self.id if 'y' in input('是否需要更改文件名请输入yes或no\n> '): self.file_name = input('请输入名字> ') with open(f'{self.file_name}.mp3', 'ab') as file: file.write(mp3.content) file.flush() def url_split(self): return int(sub(r"\D", "", self.main_url.split('song')[1])) @staticmethod def input_url(): return input("爬取网易云音乐地址\n> ") def run(self): self.main_url = self.input_url() if 'music.163.com' in self.main_url: self.id = self.url_split() self.url = f'{self.music_163}?id={self.id}.mp3' self.save() print(f'保存成功,文件名为"{self.file_name}.mp3"') print(f'{self.out}秒后推出此页面') sleep(self.out) music = Music() music.run() except ModuleNotFoundError as error: print(f'安装"{error.name}"库') try: from os import system system(f'pip install {error.name}') system(f'python {__file__}') except Exception as error: print(f'\033[0;31m{error} \033[0m!')