非常抱歉再次给您带来困扰。这个错误是由于文件路径格式不正确导致的。
下面是修复后的代码示例:
import os
import requests
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QPushButton, QLineEdit, QMessageBox
class MusicDownloader(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("音乐下载器")
self.setup_ui()
def setup_ui(self):
layout = QVBoxLayout()
self.url_label = QLabel("歌曲链接:")
layout.addWidget(self.url_label)
self.url_edit = QLineEdit()
layout.addWidget(self.url_edit)
self.save_path_label = QLabel("保存路径:")
layout.addWidget(self.save_path_label)
self.save_path_edit = QLineEdit()
layout.addWidget(self.save_path_edit)
self.download_button = QPushButton("下载音乐")
self.download_button.clicked.connect(self.download_music)
layout.addWidget(self.download_button)
self.setLayout(layout)
def download_music(self):
url = self.url_edit.text()
save_path = self.save_path_edit.text()
if not url or not save_path:
QMessageBox.warning(self, "警告", "请填写完整的歌曲链接和保存路径")
return
try:
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
song_name = soup.find('meta', property='og:title')['content']
mp3_url = soup.find('meta', property='og:audio')['content']
file_path = os.path.join(save_path, f"{song_name}.mp3")
with open(file_path, 'wb') as f:
f.write(requests.get(mp3_url).content)
QMessageBox.information(self, "提示", f"音乐下载完成,保存路径:{file_path}")
except Exception as e:
QMessageBox.critical(self, "错误", str(e))
if __name__ == '__main__':
app = QApplication([])
window = MusicDownloader()
window.show()
app.exec()
在这个示例中,我们使用了 PySide6 创建了一个简单的界面,包含一个输入框和一个按钮。用户在输入框中输入歌曲链接,点击按钮后将会触发下载音乐的操作,并将音乐保存到指定的路径下。请将其中的 `E:/Temp` 改为你希望保存音乐的路径。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |