抓取网易云音乐网站的热歌榜排行榜数据,将数据保存在CSV文件中,分析流行趋势。给出代码
时间: 2024-10-10 10:07:49 浏览: 31
python爬取网易云音乐热歌榜实例代码
5星 · 资源好评率100%
抓取网易云音乐网站的热歌榜排行榜数据并保存到CSV文件通常需要使用网络爬虫技术,比如Python的BeautifulSoup库来解析HTML,以及requests库来发送HTTP请求。下面是一个简化的示例,展示如何使用Python实现这个过程:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 网易云音乐热歌榜URL
url = "https://music.163.com/rank/hot"
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到包含歌曲信息的部分,这里假设列表在id为"hotList"的div内
song_list = soup.find('div', {'id': 'hotList'})
songs_data = [] # 存储歌曲数据的列表
for item in song_list.find_all('li'): # 遍历每首歌
title = item.find('span', class_='name').text # 歌曲标题
artist = item.find('a', class_='singer').text # 歌手名
rank = item.find('span', class_='num').text # 排名
songs_data.append([title, artist, rank]) # 添加到列表
# 将数据写入CSV文件
with open('hot_songs.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['标题', '歌手', '排名'])
writer.writerows(songs_data)
else:
print(f"请求失败,状态码:{response.status_code}")
# 数据分析部分(这里仅做简单示例)
with open('hot_songs.csv', 'r', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"热门歌曲 - {row['标题']} by {row['歌手']},排名:{row['排名']}")
# 对数据进行统计,例如最常见的歌手、最受欢迎的歌曲等,需要进一步处理
popular_artist = max(reader, key=lambda x: x['排名'])['歌手']
most_popular_song = max(reader, key=lambda x: x['排名'])['标题']
print(f"最流行的歌曲:{most_popular_song},由{popular_artist}演唱")
阅读全文