爬取网易云音乐并制作gui界面
时间: 2024-01-19 14:03:54 浏览: 117
爬取网易云音乐需要使用到requests、BeautifulSoup和re等库,gui界面我们可以使用Tkinter来实现。下面是一个简单的爬取网易云音乐并制作gui界面的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import webbrowser
import tkinter as tk
# 创建一个Tk窗口
root = tk.Tk()
root.title("网易云音乐top500")
# 创建列表框和滚动条
listbox = tk.Listbox(root, width=50, height=20)
scrollbar = tk.Scrollbar(root)
# 布局列表框和滚动条
listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
# 将滚动条绑定到列表框
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
# 爬取网易云音乐top500
url = 'https://music.163.com/discover/toplist?id=3778678'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
songs = soup.find_all('span', class_='txt')
# 遍历top500歌曲
for i, song in enumerate(songs):
song_name = song.find('a').text
song_artist = song.find('span', class_='s-fc8').text
song_info = f'{i+1}:{song_name} - {song_artist}'
# 将歌曲信息添加到列表框中
listbox.insert(tk.END, song_info)
# 在网页中打开歌曲链接
song_id = re.search(r'song\?id=(\d+)', song.find('a')['href']).group(1)
song_url = f'https://music.163.com/#/song?id={song_id}'
def open_song(event, song_url=song_url):
webbrowser.open(song_url)
listbox.bind('<Double-Button-1>', open_song)
# 进入主循环
root.mainloop()
```
这个示例代码爬取了网易云音乐的top500歌曲信息,并将它们显示在一个列表框中。你可以在列表框中双击歌曲信息,打开网页播放该歌曲。需要注意的是,爬取网站内容时一定要遵守网站的相关规定,不要进行不当的操作。
阅读全文