通过jieba库抓取网易云音乐的评论内容,生成指定图片的词云图分析来研究用户对音乐的看法,同时获取停用表,抓取的音乐是赵雷的成都,费玉清的一剪梅,具体代码怎么写
时间: 2024-04-02 13:35:43 浏览: 50
Python爬取网易云音乐热门评论
5星 · 资源好评率100%
首先,你需要安装jieba库和wordcloud库,可以使用以下命令进行安装:
```
pip install jieba
pip install wordcloud
```
接下来,你需要抓取网易云音乐的评论内容。可以使用requests库向指定url发送请求,获取评论内容。例如:
```python
import requests
url = "https://music.163.com/api/v1/resource/comments/R_SO_4_569213220?limit=100&offset=0"
headers = {
"Referer": "https://music.163.com/song?id=569213220",
"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)
comments = response.json()["comments"]
```
这里以赵雷的成都为例,其中url中的id为569213220,可以根据需要修改。
然后,你需要对评论内容进行分词和去停用词。可以使用jieba库,同时需要获取一个停用表,可以从网上下载或自己手动创建。例如:
```python
import jieba
# 加载停用表
stopwords = []
with open("stopwords.txt", "r", encoding="utf-8") as f:
for line in f:
stopwords.append(line.strip())
# 分词
words = []
for comment in comments:
text = comment["content"]
seg_list = jieba.cut(text, cut_all=False)
for word in seg_list:
if word not in stopwords and word != " ":
words.append(word)
```
这里将分词结果保存在words列表中。
最后,你需要使用wordcloud库生成词云图。可以根据需要设置图片大小、背景色、字体等参数。例如:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 生成词云图
text = " ".join(words)
wc = WordCloud(
background_color="white",
width=800,
height=600,
font_path="msyh.ttc",
max_words=200,
max_font_size=100,
)
wc.generate(text)
# 显示词云图
plt.imshow(wc)
plt.axis("off")
plt.show()
```
这里使用msyh.ttc字体,可以根据需要修改。生成的词云图会在窗口中显示出来。
以上就是抓取网易云音乐评论内容,生成指定图片的词云图的代码。对于其他歌曲,只需要修改url中的id即可。
阅读全文