爬取网站 https://nocturne-spider.baicizhan.com/2020/09/02/coco/ 所有的文字内容,利用结巴分词生成一张宽度为800px,高度为500px的词云图,生成的文件命名为“dream.html”。 【题目要求】 1. 词频统计时,过滤掉字的个数为1的字符串; 2. 利用jieba模块,对转换成的字符串进行分词; 3. 使用wordcloud模块,将分词后的结果生成词云图,字体大小范围为[30,70],图片宽度为800,高度为500。
时间: 2024-03-28 09:38:42 浏览: 94
【python网络爬虫】python获取聚美优品化妆品价格数据
以下是Python代码实现:
```python
import requests
from bs4 import BeautifulSoup
import jieba
from wordcloud import WordCloud
# 爬取网页内容
url = 'https://nocturne-spider.baicizhan.com/2020/09/02/coco/'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
content = soup.find('div', class_='entry-content').get_text()
# 过滤掉字数为1的字符串
content = [word for word in content if len(word) > 1]
content = ''.join(content)
# 分词
seg_list = jieba.cut(content)
# 生成词频统计结果
word_dict = {}
for word in seg_list:
if len(word) > 1:
word_dict[word] = word_dict.get(word, 0) + 1
# 生成词云图
wc = WordCloud(width=800, height=500, background_color='white', font_path='msyh.ttc', max_font_size=70, min_font_size=30)
wc.generate_from_frequencies(word_dict)
wc.to_file('dream.html')
```
代码解释:
1. 使用 requests 库爬取网页内容,并通过 BeautifulSoup 库解析 HTML。
2. 过滤掉字数为1的字符串。
3. 使用 jieba 库对文本进行分词。
4. 生成词频统计结果,即每个词出现的次数。
5. 使用 WordCloud 库生成词云图,设置图片宽度为800,高度为500,字体大小范围为[30,70]。
6. 将生成的词云图保存为“dream.html”文件。
注意事项:
1. 需要安装 jieba 和 wordcloud 库。
2. 需要下载中文字体文件,比如微软雅黑(msyh.ttc),并将其放置在工作目录下。
阅读全文