使用 Tkinter 在 Python 中提取歌曲歌词的 GUI

17 Mar 2025 | 6 分钟阅读

在本教程中,我们将创建一个Python程序来提取歌曲的歌词,并将其连接到GUI应用程序。只需输入歌曲的名称,lyrics-extractor就会从各种网站提取歌曲的标题和歌词,并返回给我们。这是一个适合初学者的项目,我们将从中学习如何从JSON Web API提取数据,并将这些概念应用于实际项目。

关于应用程序

一首歌曲的歌词是通过歌词提取器提取的。在我们的项目中,用户将输入音乐标题,然后我们的应用程序将使用requests和JSON库从一组特定的链接中提取歌曲的歌词。所有这些都将通过构建一个GUI来完成这项操作来实现。

在继续进行程序之前,我们需要安装lyrics-extractor模块。我们将使用终端执行此命令。

要求

我们将需要一个Google自定义搜索JSON API引擎ID和一个API密钥。

引擎ID

  • 为了获取我们的引擎ID,我们将在这里创建一个自定义搜索引擎
  • 为了获取歌词,我们必须构建自己的可编程搜索引擎(Google自定义搜索引擎)并包含一个链接
  • 可编程搜索引擎的基础是Google的主要搜索技术。
  • 它作为您网站的搜索引擎,负责帮助用户查找信息。

获取您的搜索引擎,请选择以下任何链接。

JSON API

方法

  • 导入模块。
  • 使用Google自定义搜索JSONAPI密钥引擎ID输入SongLyrics()
  • 通过将歌曲名称作为参数包含在extracting_lyrics.get lyrics()函数中,您可以获取歌词。

此方法的代码

输出

GUI to extract Lyrics from a song Using Tkinter in Python

注意:在代码中输入API密钥和引擎ID时,我们必须输入自己的密钥和ID,以避免产生错误。

使用Tkinter提取歌词的GUI

该项目相当容易操作,并利用了requests、tkintergoogle API client等模块。为了建立连接并检索必要的搜索结果,我们使用Google API Client,并使用Tkinter构建GUI。

为了从获取的结果中提取歌词,使用了requests。这是一个名为Requests的内置库。在构建项目时,我们还需要引擎ID和API密钥。提取歌词时,SongLyrics()函数将使用它们。借助下面提供的网站,我们可以生成自己的API密钥和引擎ID。

前面提到的链接可用于获取您独特的API密钥,此链接可用于获取您独特的引擎ID - https://#/cse/create/new

出于安全考虑,建议生成新的API密钥和引擎ID。

在生成引擎ID时,我们必须包含将要用于提取歌词的网站名称。为了获得更好的结果,请像我们之前提到的那样输入多个网站URL。

代码解析

首先,我们导入了程序所需的模块,例如TkinterSongLyrics中的lyrics_extractor类到我们的代码中。

然后,我们定义了一个名为getting_lyrics()的函数,用于提取歌曲的歌词,同时使用songLyrics()方法输入API密钥和引擎ID。然后,我们创建了一个名为var的新变量,用于提取歌词并暂时保存它们,最后将结果永久存储在final变量中。

接下来,我们设置了主代码,并将GUI窗口定义为base,作为Tkinter库的一个实例,并使用configure()方法将窗口的背景颜色设置为浅灰色。然后,我们创建了一个名为result的新变量来存储结果。

然后,我们使用Label控件创建了几个标签,用于输入歌曲名称和显示结果歌词。为了精确创建,我们提到了参数base、text和bg。此外,为了定位它们,我们使用了带有参数row和sticky的grid()方法。

然后,我们使用Label控件添加了另一个标签,并使用Entry控件添加了几个输入框,用于输入和显示文本,并使用带有参数row、column和sticky的grid()方法定位它们。

最后,我们使用Button控件创建了一个Show按钮,用于显示歌曲的提取歌词。我们使用grid()方法,借助各种参数,如row、column、columnspan、rowspan、padx和pady,将其定位在GUI窗口上。

完整代码

输出

下面以截图形式附上了提取歌曲歌词的GUI的输出。

GUI to extract Lyrics from a song Using Tkinter in Python

结论

因此,我们从头开始了一个简单的Python提取歌曲歌词项目。该项目是网络爬虫、tkinter GUI设计和使用Google API客户端构建自定义搜索引擎的绝佳入门。