用python写一个爬取各平台音乐的可视化软化
时间: 2024-03-18 19:44:56 浏览: 49
用python实现音乐可视化
你可以使用 Python 的数据可视化库 Matplotlib、Seaborn 或 Plotly 等来实现音乐数据的可视化。以下是一个简单的示例代码,用于爬取网易云音乐“云音乐新歌榜”中前 20 首歌曲的播放量,并使用 Matplotlib 库来将数据可视化:
```python
import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
# 构造请求头,伪装成浏览器访问
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 发送 HTTP 请求,获取数据
url = 'http://music.163.com/discover/toplist?id=3778678'
response = requests.get(url, headers=headers)
html = response.text
# 使用 BeautifulSoup 解析数据
soup = BeautifulSoup(html, 'html.parser')
song_list = soup.find_all('a', class_='msk')
# 获取歌曲播放量
play_count_list = []
for song in song_list[:20]:
song_url = 'http://music.163.com' + song['href']
song_response = requests.get(song_url, headers=headers)
song_html = song_response.text
song_soup = BeautifulSoup(song_html, 'html.parser')
play_count = song_soup.find('strong', class_='f-ff2').string
play_count_list.append(int(play_count))
# 对播放量进行可视化
x = range(1, 21)
plt.plot(x, play_count_list, '-o')
plt.xticks(x, [song['title'] for song in song_list[:20]], rotation=90)
plt.xlabel('Song')
plt.ylabel('Play Count')
plt.title('Top 20 Songs in Netease Cloud Music')
plt.show()
```
以上代码可以将网易云音乐“云音乐新歌榜”中前 20 首歌曲的播放量进行可视化。你可以根据需要修改代码,爬取其他音乐平台上的音乐信息,并使用不同的数据可视化库进行可视化。
阅读全文