爬取网站 https://nocturne-spider.baicizhan.com/2020/09/02/coco/ 所有的文字内容,利用结巴分词生成一张宽度为800px,高度为500px的词云图,生成的文件命名为“dream.html”。 【题目要求】 1. 词频统计时,过滤掉字的个数为1的字符串; 2. 利用jieba模块,对转换成的字符串进行分词; 3. 使用wordcloud模块,将分词后的结果生成词云图,字体大小范围为[30,70],图片宽度为800,高度为500。分词只能用lcut,词云图必须用pyecharts实现
时间: 2024-03-28 10:38:38 浏览: 64
【python网络爬虫】python获取聚美优品化妆品价格数据
以下是Python代码实现:
```python
import requests
from bs4 import BeautifulSoup
import jieba
from collections import Counter
from pyecharts.charts import WordCloud
from pyecharts import options as opts
# 爬取网页内容
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.lcut(content)
# 生成词频统计结果
word_dict = Counter(seg_list)
# 生成词云图
wordcloud = (
WordCloud(init_opts=opts.InitOpts(width='800px', height='500px'))
.add("", word_dict.items(), word_size_range=[30, 70])
.set_global_opts(title_opts=opts.TitleOpts(title="Dream WordCloud"))
.render("dream.html")
)
```
代码解释:
1. 使用 requests 库爬取网页内容,并通过 BeautifulSoup 库解析 HTML。
2. 过滤掉字数为1的字符串。
3. 使用 jieba 库对文本进行分词,使用 lcut 方法。
4. 生成词频统计结果,即每个词出现的次数,使用 Counter 类。
5. 使用 pyecharts 库生成词云图,设置图片宽度为800,高度为500,字体大小范围为[30,70],使用 WordCloud 类。
6. 将生成的词云图保存为“dream.html”文件。
注意事项:
1. 需要安装 jieba、pyecharts 和 collections 库。
2. 需要下载中文字体文件,比如微软雅黑(msyh.ttc),并将其放置在工作目录下。
阅读全文