爬取1000条大众评论,并合成词云
时间: 2023-08-29 09:04:57 浏览: 113
爬取豆瓣电影官网上的前200条评论并进行情感分析,并且生成词云
5星 · 资源好评率100%
请注意,爬取他人网站的评论可能会涉及到侵权问题,建议遵守网站的规定和法律法规。此外,以下代码仅供学习参考,不得用于非法用途。
以下是爬取大众点评的评论并生成词云的示例代码,需要使用到 requests、BeautifulSoup 和 jieba 库:
```python
import requests
from bs4 import BeautifulSoup
import jieba
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
# 爬取大众点评的评论
url = 'https://www.dianping.com/shop/18114768/review_all'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all('div', {'class': 'review-words'})
# 将评论写入文件
with open('comments.txt', 'w', encoding='utf-8') as f:
for comment in comments:
f.write(comment.text.strip() + '\n')
# 读取评论文件
with open('comments.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 分词
words = jieba.cut(text)
# 去除停用词
stopwords = set(STOPWORDS)
stopwords.add('还是')
stopwords.add('就是')
stopwords.add('真的')
stopwords.add('非常')
stopwords.add('已经')
stopwords.add('还有')
stopwords.add('这么')
stopwords.add('这个')
stopwords.add('不过')
stopwords.add('但是')
stopwords.add('所以')
stopwords.add('一定')
stopwords.add('一点')
stopwords.add('感觉')
stopwords.add('比较')
stopwords.add('有点')
stopwords.add('很多')
stopwords.add('这种')
stopwords.add('这样')
stopwords.add('这里')
stopwords.add('这个')
stopwords.add('不用')
stopwords.add('不能')
stopwords.add('没有')
stopwords.add('不会')
stopwords.add('不好')
stopwords.add('不行')
stopwords.add('不太')
stopwords.add('不敢')
words = [word for word in words if word not in stopwords]
# 合成词云
wordcloud = WordCloud(width=800, height=800, background_color='white').generate(' '.join(words))
plt.figure(figsize=(8, 8), facecolor=None)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
```
这个代码会爬取大众点评“自在生活”这家店铺的评论,并将评论写入文件。然后使用 jieba 库对评论进行分词,并去除停用词。最后使用 WordCloud 库生成词云并展示。这个词云可以帮助我们了解该店铺的消费者对其的评价情况。
阅读全文