前提废话

之前关注了一个python的公众号,每天都会推送文章,每次看都会看到他有使用wordcloud这个库来生成好看的词云,于是乎,我就学习了jieba分词和wordcloud词云。


这里给win系统的小伙伴提示下,如果你的pip install wordcloud 时候出现了确实VC++文件时,提示你需要安装VC++,但是很多人肯定是不愿意安装的,所以,我就找到了一个直接安装wordcloud库的方法

wordcloud安装

win系统下:
可以直接点击,然后找到wordcloud库,下载对应的版本,然后放在方便的盘中,使用cmd进入该盘中,然后输入pip install wordcloud-1.2.1-cp36-cp36m-win_amd64.whl(后面加你下载的版本即可)
这样就成功的安装好了

爬虫部分

之前寒假的时候写过一个小说下载器,之前就是通过免费小说网站直接爬取所有章节,这一部分就不详细说明了,不懂的小伙伴可以点击查看我之前的博客
直接附上代码:

url = 'https://www.ybdu.com/xiaoshuo/2/2746/'
head = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}
file = open('test.txt','w')html = requests.get(url,params=head)
html.encoding='gbk'
wenzhang_select = re.compile(r'<ul class="mulu_list">(.*?)</ul>',re.S)
wenzhang = wenzhang_select.search(html.text)
"""soup = BeautifulSoup(html,"html.parser")
list_old = soup.find(class_= "mulu_list")
list_new = list_old.find_all('li')"""
select = re.compile(r'<li>(.+?)</li>')
list_new = select.findall(wenzhang[0])
for i in list_new:id_select = re.compile(r'<a href="(.*?)">(.*?)</a>')one_url = url + id_select.findall(i)[0][0]one_html = requests.get(one_url,params=head)one_html.encoding = 'gbk'soup = BeautifulSoup(one_html.text,"html.parser")try:file.write(soup.find(class_ = 'h1title').h1.text + '\n')except BaseException:print('Sorry1')try:file.write((soup.find(class_ = 'contentbox').text.split('\n')[1].replace('    ','\n')) + '\n')except BaseException:print('Sorry2')
file.close()

分词和生成词云

这一部分,我主要想找出人名的词频,但是直接使用jieba的分词,会分出来很多不是你想要的词,所以我就找到了所有的三国里的人名链接(当然不一定是全部人名),然后使用自定义字典对文本进行分词,分词后还是有很多多余的标点、空格等等,我直接使用索引略过了那些,最后根据一张猫猫的照片生成了一般的词云图和颜色与照片一致的词云图。
代码如下:

text_read = open('test.txt').read()
jieba.load_userdict('test_dic.txt')
c = jieba.cut(text_read, cut_all=False, HMM=True)
word_list = []
for i in c:word_list.append(i)
word_dic = {}
for i in word_list:if i not in word_dic:word_dic[i] = 1else :word_dic[i] += 1
over_list = sorted(word_dic.items(), key = lambda x : x[1], reverse=True)font_path = "D:\Fonts\simkai.ttf"#字体路径
dizi_path = "D:\dizi.jpg"#底子图片路径back_coloring = imread(dizi_path)#使用PIL来读取图像wc = WordCloud(background_color="white", #背景颜色font_path=font_path, #字体选择max_words=1000, #最大词数mask=back_coloring ,#背景图片max_font_size=100, #最大字体大小width=1000, height=860, margin=2)wc.fit_words(dict(over_list[20:]))plt.figure()
#显示图片
plt.imshow(wc)
plt.axis("off")
plt.show()
#保存图片
wc.to_file(path.join(path.dirname(__file__), 'wordcloud1.png'))
#改变颜色
image_color = ImageColorGenerator(back_coloring)#从背景图片生成颜色值
plt.imshow(wc.recolor(color_func=image_color))#使用新的颜色值布局着色
plt.axis('off')#关闭坐标轴
#绘制背景颜色的词云
plt.figure()
plt.imshow(back_coloring, cmap = plt.cm.gray)
plt.axis('off')
plt.show()
wc.to_file(path.join(path.dirname(__file__), 'wordcloud2.png'))

最后附上图片

背景图:

初始词云:

背景色词云:

PS:
古文版的《三国演义》中出现最多的是曹操、孔明、玄德,可以看出这几个人是书中的重点人物,有时候把一些枯燥的数据可视化以后还是很好玩的,以后会多多尝试。

Python爬取《三国演义》并且制作词云相关推荐

  1. 爬取豆瓣短评制作词云

    首先是解析网页信息 引库(前提是你已经安装过了) import requests from bs4 import BeautifulSoup 接下来先请求网页 def getHtml(url):&qu ...

  2. python爬取新闻,制作词云图

    前言 一提到python爬虫,词云图,就头大,我们就从简单开始,一步一步进行 python爬虫 一.基本框架 此代码只对python的基本框架进行描述 # -*- coding: utf-8 -*-# ...

  3. python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表

    目录 1.目标 2.码前须知 3.操作流程 4.完整代码 5.总结 1.目标 python爬取三国演义,生成词云.图表 2.码前须知 项目目标:三国人物名称及出现次数-----数据统计分析 提出问题: ...

  4. python爬取歌词生成词云图_爬取毛不易歌词作词云展示

    爬取毛不易歌词作词云展示 今天我们做一个数据可视化的项目,爬取毛不易的歌词做词云展示. 1.爬取数据 我们主要使用 Python 爬虫获取 HTML,用 XPath 对歌曲的 ID.名称进行解析,然后 ...

  5. python爬取微博数据词云_用Python爬取微博数据生成词云图片

    原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...

  6. Python 3.6 使用wordcloud制作词云(可设背景图像)

    在python 3.6环境中 使用wordcloud模块制作词云,首先在安装wordcloud模块,安装方法有几个,可参考安装方法与可能会遇到的问题 代码: #!/usr/bin/env python ...

  7. python给乘风破浪的姐姐制作词云打call图

    上一篇python爬取乘风破浪的姐姐弹幕–芒果TV爬虫,将乘风破浪的姐姐前四集的弹幕全部爬下来之后,可以为小姐姐们做一个词云打call图 import json import pandas as pd ...

  8. 使用python爬取三国演义

    此篇使用的是python进行数据爬虫 爬取工具使用的是:bs4,requests 爬取的网站:https://www.shicimingju.com/book/sanguoyanyi.html 爬取的 ...

  9. python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...

    导语 在前段时间看了杰昆菲尼克斯的小丑电影,心里很好奇大部分观众看完这部电影之后对此有什么评价,然后看了看豆瓣短评之后,觉得通过python把短评中出现最多的单词提取出来,做成一张词云,看看这部电影给 ...

  10. python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...

    最近看了一部电影<绣春刀>,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字.用jieba分词,对词语的出现频率进行统计,再通过wordcloud生 ...

最新文章

  1. 狮子座2007年星座运程
  2. 人民日报钟声:以和平合作守护世界安全
  3. SIFT四部曲之——高斯滤波
  4. 在阿里云服务器centOs7系统中部署.NET Core项目
  5. SpringCloud工作笔记067---消息推送_推送视频_推送图片_在通知栏里显示图片视频_自定义点击消息后的动作
  6. ElasticSearch架构反向思路
  7. 万能地图下载器下载谷歌卫星地图在ArcGIS中套合
  8. u盘拷文件提示文件过大怎么办
  9. MySQL系列:表空间加密
  10. jsp里table边框线_JSP表格边框颜色
  11. 谢国忠:2012年股市、楼市泡沫终将破灭
  12. 高德地图获取城市所有小区的POI
  13. JavaScript实现变化的满天星星
  14. 散列函数(哈希函数,Hash Function)
  15. Kronos木马都在不断进步,而你呢?
  16. 使用BULK INSERT高效导入大量数据到SQL Server数据库
  17. 手工改造debian安装U盘
  18. Hoppscotch - 免费开源的轻量级 API 接口开发/测试/调试工具,代替 Postman
  19. 微信小程序-【仿咸鱼】的底部导航
  20. 发票OFD格式打开方式

热门文章

  1. html右键菜单背景图片,鼠标右键的普通背景怎么更换为漂亮的菜单背景?
  2. 苏泊尔公布财报一季度承压,营收大幅下跌后龙头之位还稳吗?
  3. B2B制造业电商网站开发,整合提高机械设备市场资源配置效率
  4. java面向切面编程
  5. JAVA开发(分布式SpringCloud全家桶一些组件读法)
  6. 数据包工具--Scapy基础篇
  7. c#连mysql 连接字符串
  8. html中线的移动怎么设置彩铃,移动彩铃如何设置【方法步骤】
  9. NeurIPS2020 | StemGNN:基于图谱分解的时间序列预测
  10. Springboot 整合springfox