打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
爬取四大名著和《金瓶梅》全文,并绘制词云,分析各书的第一主角

四大名著的经典性毋庸置疑,除红楼梦外,其他几部只读过一遍,红楼梦读过几遍,也看过几位大家的点评,这几年,也偶尔会拿起来读一读,去年读过的《蒋勋细读红楼梦》,我觉得不错,如果你不想读原著,可以拿这本书来做个入门。下面的代码展示的是红楼梦的爬取,其他小说类似,只改一下网址即可。

# coding=utf-8import requestsfrom bs4 import BeautifulSoupimport jiebafrom pyecharts.charts import WordCloudwordList = []for i in range(121): if i < 10: url = f'http://www.purepen.com/hlm/00{i}.htm' elif i<100: url = f'http://www.purepen.com/hlm/0{i}.htm' else: url = f'http://www.purepen.com/hlm/{i}.htm' res = requests.get(url) res.encoding = res.apparent_encoding html = res.text soup = BeautifulSoup(html,'lxml') content = soup.find('table') data = content.text words = jieba.lcut(data) wordList = wordList + wordswordDict = {}for word in wordList: if len(word) > 1: if word not in wordDict.keys(): wordDict[word] = 1 else: wordDict[word] = wordDict[word]+1wordCloud = WordCloud()wordCloud.add(series_name='',data_pair=wordDict.items(),word_size_range=[20,100])wordCloud.render('wordCloud2.html')

毫无疑问,《红楼梦》的第一主角为贾宝玉,然后是一堆女人围着他,奇怪的是黛玉并没有出现,丫鬟们称黛玉为“姑娘”,宝钗称黛玉为“颦儿”,宝玉称呼黛玉为”林妹妹”,贾母称呼黛玉为““玉儿”,“外孙女”,“丫头”,确实没什么人直接喊黛玉。少年时喜欢黛玉,长大了喜欢史湘云。

接下来是水浒传,水浒传的第一主角是宋江,水浒传108将,出现在词云图里的有卢俊义,李逵,李俊,关胜,柴进,张顺等,最重要的还是那个词:“哥哥”。

早就有话说,少不读水浒,老不读三国。水浒从本质上还是一本黑帮小说,打打杀杀,还一直说:杀去东京,夺了鸟位,李逵看似憨憨,实则是一狠人,宋江道貌岸然,假仁假义,我很讨厌。

《西游记》里第一主角当然是孙悟空,但是从这个词云来看,悟空并没有出现,可能确实出现得太少了,只是出现了个行者,出现最多的词是南无阿弥陀佛。唐僧,圣僧,师父等等词,也经常出现,毕竟,那句,大师兄,师父又被妖怪抓走了已经成了经典。

《三国演义》中出现最多的词是孔明,虽然诸葛亮在全书的中部才出现,但也不影响他成为第一主角,这个主角当然只是字面意义上的,实际上三国确实上是以蜀汉为主要视角来写的。

《金瓶梅》从字面意义上来讲,书名由书中三个女主人公潘金莲、李瓶儿、庞春梅名字中各取一字合成,曹雪芹在《红楼梦》中借焦大之口骂荣国府,除了门口那对石狮子,没有一个是干净的,我们于《金瓶梅》之中的西门家,亦是如此。男主西门庆,但是从词云上来看,并没有出现这潘金莲、李瓶儿、庞春梅的名字,反而最多的主角是月娘,也就是西门庆的大老婆。除了上面提到的三个,西门庆还有三个老婆,孟玉楼,孙雪娥,李娇儿。类似《红楼梦》,一个男人和好多女人的故事。《红楼梦》的创作,深受《金瓶梅》的影响。

简单写了写,并没有写很多,也不深刻,就当是个随笔吧。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
敢用《红楼梦》做秀,为什么不敢用《金瓶梅》?
黛玉葬花
【每周一坑】选择困难的农药召唤师
红楼梦诗词赏析140
用Python搞出自己的云词图
【教程】使用R语言绘制词云图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服