爬取网易云音乐热歌榜200首歌的热评并分析结果
时间: 2024-04-04 14:31:40 浏览: 16
好的,下面我将给出一种简单的实现方法。
首先,需要获取网易云音乐热歌榜的歌曲信息。可以使用类似之前爬取周杰伦专辑的方法,请求热歌榜 API,例如:
```python
import requests
import json
url = 'https://music.163.com/api/v3/playlist/detail?id=3778678'
headers = {
'Referer': 'https://music.163.com/',
'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'
}
response = requests.get(url, headers=headers)
data = json.loads(response.text)
tracks = data['playlist']['tracks']
for track in tracks:
track_id = track['id']
track_name = track['name']
track_url = 'https://music.163.com/song?id={0}'.format(track_id)
print(track_name, track_url)
```
这里循环遍历了每首歌曲,然后获取了歌曲名称和链接。
接下来,需要获取每首歌曲的热门评论。可以使用类似的方法,请求歌曲评论的 API,例如:
```python
import requests
import json
song_id = '1436664680'
url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_{0}?limit=100'.format(song_id)
headers = {
'Referer': 'https://music.163.com/',
'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'
}
response = requests.get(url, headers=headers)
data = json.loads(response.text)
comments = data['comments']
for comment in comments:
comment_content = comment['content']
comment_time = comment['time']
comment_user = comment['user']['nickname']
print(comment_content, comment_time, comment_user)
```
这里循环遍历了每个评论,然后获取了评论的内容、时间和用户信息,打印出了这些信息。
最后,可以使用 Python 的数据分析和可视化库来对爬取到的数据进行分析和可视化展示。例如,可以使用 pandas 库来读取评论数据,然后使用 jieba 分词和 wordcloud 库来生成词云图:
```python
import pandas as pd
import jieba
from wordcloud import WordCloud
df = pd.read_csv('comments.csv', header=None, names=['content', 'time', 'user'])
content = ' '.join(df['content'].tolist())
words = jieba.cut(content)
word_list = [word for word in words if len(word) >= 2]
word_str = ' '.join(word_list)
wordcloud = WordCloud(background_color='white', font_path='msyh.ttc').generate(word_str)
wordcloud.to_file('wordcloud.png')
```
这里使用了 jieba 分词库对评论内容进行分词处理,然后使用 wordcloud 库生成词云图。
以上就是爬取网易云音乐热歌榜200首歌的热评并分析结果的一个简单示例。注意,爬取网易云音乐的数据需要注意版权问题,不要非法获取数据。