查看原文
其他

闲得无聊|爬取了整部红楼梦并词云图展示

陈鸥辉 信息科技时代 2024-03-15

Python|词频云图

本组集体备课资源下载地址:
拉到文章最底端,单击“阅读原文”可以打开下载链接。

链接:https://pan.baidu.com/s/1gwCream0fFoqwgxZLSkALg

提取码:amq7

    经过词频云图分析,才明白《红楼梦》其实是一部关于宝玉与凤姐的小说,排第三的是贾母。黛玉、宝钗跟袭人、贾琏、平儿差不多,出现频率还不如王夫人。

爬取整部红楼梦参考程序:

import requests
from bs4 import BeautifulSoup
import os
#以下为爬取红楼梦中一回的内容,红楼梦网址:http://www.purepen.com/hlm/
filename = '整部红楼梦.txt'
if os.path.exists(filename):
os.remove(filename)
f = open(filename, 'w+',encoding='utf-8')
f.write('红楼梦') # 输出标题
for i in range(1, 121):
if i<10:
page='00'+str(i)
elif i<100:
page='0'+str(i)
else:
page=str(i)
print(page)
url = 'http://www.purepen.com/hlm/'+page+'.htm'#自选任意一回
r = requests.get(url)#爬取网页内容
#print(r.apparent_encoding)#获取网页编码方式
soup=BeautifulSoup(r.content.decode(r.apparent_encoding,errors='ignore'),'html.parser')
txt = soup.select('center')#获取红楼梦的内容
f.write('\n'+soup.title.text)#输出标题
for s in txt:
f.write(s.text)#内容
f.close()

词频云图参考程序:

import jieba
import numpy as np
from PIL import Image
from wordcloud import WordCloud
import matplotlib.pyplot as plt
pic_mask = np.array(Image.open("树叶.jpg")) # 获取词云形状的图片
text = open('整部红楼梦.txt', 'r', encoding='utf8').read() # 获取分词数据
word_list =' '.join(jieba.lcut(text)) # 使用精确模式对文本进行分词
#print(word_list)
wordcloud = WordCloud(font_path='simhei.ttf', # 显示字体的路径
background_color="white",# 显示的字体和背景颜色
max_words=500,#出现次数最多的前500个分词
max_font_size=150,#显示的最大字号
random_state=40,#分词颜色的随机配色方案数量
mask=pic_mask) #词云形状
w = wordcloud.generate(word_list) # 传入分词列表
w.to_file('整部红楼梦.png')
plt.imshow(w) # 绘制词云图
plt.show()#显示词云图

相关文章:

爬虫系列:Python|爬取淘宝热卖商品并对数据进行柱形图可视化Python|爬取淘宝任意热卖商品数据并存储
Python|BeautifulSoup使用select方法详解Python|词频云图
程序5-3-3 爬取购物平台商品销售数据
Python|任意网页中的所有网址的保存
Python|任意网页中的所有图片下载
Python|文本数据的爬取与清洗爬虫|爬取全国中小学电脑制作活动技术讲座视频爬虫|以豆瓣为例简单地介绍清洗数据的方法爬虫|以豆瓣为例简单地介绍爬取网站数据的方法爬虫|python读写csv文件的方法完成生涯规划表推荐|Python 爬虫系列教程一爬取批量百度图片使用BeautifulSoup解析网页及清洗数据爬虫的基本原理关于爬虫的合法性中国爬虫违法违规案例汇总
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存