Python爬取网站小说并可视化分析

news/2024/5/9 2:13:33/文章来源:https://wxw-123.blog.csdn.net/article/details/109248600

时间荏苒,岁月不居,看过四处风景,唯独钟爱,路遥先生的那一句话“人之所以痛苦,在于追求错误的东西,如果你不给自己烦恼,别人也永远不可能给你烦恼”,生活正是如此,一切过多的在意都是自己的想法,有时候就需要活的洒脱一点,学会看淡一点,多看点书,人自然也就变得开明了,事物也就自然看的透彻一点。

读书破万卷、下笔如有神,书中自有黄金屋,书中自有颜如玉,腹有诗书气自华…中国是诗的国度,更是书籍文化的摇篮,书本最是可以提升一个人的气度。那么今天我们就来做一个项目,我把我最喜欢的《人生》这本书数据爬取下来,做一个简单的数据分析,找出一些特点。

话不多述我们开始步入正轨吧!

目标网址

https://www.cz2che.com/0/175/7710.html

这个网站收集了很多优秀书籍,还有诗词典故,中外名著,在里面你可以找到属于你自己的那一本书,静静的的享受文字的魅力…

在这里插入图片描述
解析网址

我们爬取的时候首先必须要搭建自己框架,至于有些网站它会有一些反爬技术,有一些内容会被加密,那么我们去解析的时候要根据网站的特点去解密,收集数据,不断的去测试,反复的优化我们的代码,这样才能达到一定的效果。本次的代码设计具有可移植的效果,只是有些文本需要自己的去按照正则表达式或Xpath或beautifulsoup这些解析方法来匹配数据。

在这里插入图片描述
我这里用到的一个使我们最为常用的一个解析库-Xpath,它具有简单,易懂的特点,但是对于有一些动态的网站,那么就有一点棘手了,这个时候我们要根据自己的目标网址来选取。

好了前期工作我们都准备好了,那么我们现在就要按照我们爬虫的思路开始吧!

请求网址

 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}res=requests.get(url=url,headers=headers)# print(res.encoding)res.encoding='GBK'html=res.text# print(html)html_=etree.HTML(html)# print(html_)text=html_.xpath('//div[@class="panel-body content-body content-ext"]//text()')# text.remove("    ")

爬虫不可缺少的:
第一步:
伪装头,伪装pycharm成为浏览器,去请求网址内容,利用headers做一个参数
第二步:
编码格式,是要知道这个网址的编码是什么,这个是我们有时候最为忽视的一步,那么我们如何知道这个网址的编码是什么呢?
在console控制台输入document.charset 然后回车,如图:

在这里插入图片描述
第三步:
解析网址,我们最为常用的就是,Xlxm这个库,首先返回这个网址的源码的文本格式,然后我们利用html_=etree.HTML(html),html就是文本参数,我们解析把这个网页的源码解析好之后,就开始匹配数据了。

仅作为参考,网页时刻在发生变化

text=html_.xpath('//div[@class="panel-body content-body content-ext"]//text()')

这个每次返回的是一个列表,我们根据段落的特点把数据存储下来,那么我们的爬取数据就简单的完成了。

在这里插入图片描述
写入文件

  num=len(text)for s in range(num):file.write(text[s]+'\n')

这里按照段落特点写入到我们的txt格式里面。当然这里我们只是爬取了第一章,那么我们如何爬取整本书,就需要对网页做进一步的分析了,我们观察发现,我们第一章和第二章网址差别就是里面的某一个参数发生了改变:

https://www.cz2che.com/0/175/7713.html
https://www.cz2che.com/0/175/7714.html

那么这样就比较方便了,我们每次循环请求的时候,只需要改变这一个参数即可,我们利用format来解决这个,之前有童鞋问道format感觉很少用到,哈哈哈,我只想说一句“书到用时方恨少”

在这里插入图片描述

利用beautifulsoup爬取过程

在这里插入图片描述

现在我们完全爬取结束了!!

分析数据

获取到了一本书的数据,我们最先想到的就是我们利用jieba库进行中文分词,最后去统计文章里面出现的词组频次,最后排序输出,生成词云图,达到可视化的要求。

那么下面我们就开始读取数据,分词,统计,可视化了…

    a=file.read()b=jieba.lcut(a)

至于jieba库我们经常用到的就是这一个语法知识,对于jieba库的操作,我们的计算机二级也是有一定的要求和了解的。

那么我们如何去除掉文章里面的大量的标点符号,我们就需要利用到for循环的in操作;

在这里插入图片描述
去除掉我们标点符号,最终按照我们的标准统计法对我们的词组进行统计

代码如下:

with open(r"人生.txt", encoding="utf-8") as file:a=file.read()b=jieba.lcut(a)for x in b:if x in ",。、;:‘’“”【】《》?、.!… ":continueelse:if len(x)==1:ll.append(x)elif len(x)==2:lg.append(x)elif len(x)==3:lk.append(x)else:lj.append(x)with open(r"数据分析.txt", "w", encoding="utf-8") as f:for word in lj:#如果想要统计其他字符长度的,只需要换一个变量即可d[word] = d.get(word, 0) + 1ls = list(d.items())ls.sort(key=lambda x: x[1], reverse=True)for i in range(10):print(ls[i][0])for a in ls:# new_word=a[0] +' '+str(a[1])new_word=a[0]f.write(new_word+'\n')

得到本书中四字词语的出现最多的次数:
在这里插入图片描述
总结

1.爬取数据
2.存储数据
3.分析数据
最后我们利用词云图把这个可视化呈现给用户:
在这里插入图片描述

效果展示

在这里插入图片描述
在这里插入图片描述

本次爬取的代码具有可移植性,对该网站的所有书籍都可行,本文只提供思路,需要源码的可以私信我!

每文一语

每一次的学习和积累都是最好的安排,不要抱怨美好为何迟迟不到,只要坚持,美好总是与你不期而遇!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_716724.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

☀️从0到1部署Hadoop☀️基于网站日志进行大数据分析【❤️建议收藏❤️】

目录 基于Hadoop部署实践对网站日志分析 1.项目概述 2.安装及部署 2.1 VMware安装 2.2 Ubuntu安装 2.3 Java环境安装 2.4 Hadoop安装 2.5 MySQL安装 2.5 hive安装 2.6 sqoop安装 2.7 hbase安装 3.数据预处理 3.1 使用MapReduce编写程序 3.2 数据及环境准备 3.3 Map…

把网站从 http 转换成 https

基础准备: 一台服务器,一个主域名或多级域名,本次申请的免费 本次环境使用 centos6.5 nginx1.8 jdk1.8 tomcat8 如果需要收费的请参考: 云盾证书服务(包年)-购买-阿里云 SSL证书 - 腾讯云 一. 申请免费 HTTPS 证书 1. 输入网址 https://fr…

基于Hadoop部署实践对网站日志分析(大数据分析案例)

目录 1、项目概述 2、总体设计 2.1 Hadoop插件安装及部署 3、详细实现步骤操作纪要 3.1 hadoop环境准备 3.2 源数据文件准备 3.3 python开发mapreduce脚本 3.4 根据结果文件结构建立hive数据库表 3.4.1在结果文件上创建分区表 3.4.2 按日期创建分区 3.5 使用Hive对结果…

写论文工具:LaTex在线网站

I. http://Overleaf.com (http://ShareLaTeX.com) http://Lucidchart.com (http://Gliffy.com) http://Mendeley.com 用这一套网站,可以随时随地画图写论文,云端 LaTeX 环境 云端 visio 替代品 云端参考文献管理。 Overleaf …

Winform下动态执行JavaScript脚本获取运行结果,谈谈网站的自动登录及资料获取操作...

为了有效阻止恶意用户的攻击,一般登录都会采用验证码方式方式处理登录,类似QQ的很多产品的验证码处理,但在一些OA系统中,系统通过非对称加密方式来处理登录的密码信息,登录页面每次提供对密码进行加密的公钥是不同的&a…

基于Lucene框架的“虎扑篮球”网站搜索引擎(java版)

1 引言 本次作业完成了基于Lucene的“虎扑篮球”网站搜索引擎,对其主要三个板块---“最新新闻”(主要NBA新闻),“虎扑步行街”(类似贴吧性质),“虎扑湿乎乎”(篮球发帖区&#xff0…

关系抽取-常见问题-Overlap:SEO(SingleEntity, 一实体与多个实体有关系)、EPO(EntityPair,同一对实体有多种关系)、HTO(HeadTail,头尾实体有嵌套/重叠)

SEO(SingleEntityOverlap, 一个实体与多个实体有关系)、 EPO(EntityPairOverlap,同一对实体有多种关系)、 HTO(HeadTailOverlap,头尾实体有嵌套/重叠) 参考资料: 关系抽…

网站统计 开源 java_开源 java CMS - FreeCMS2.8 统计分析

统计分析系统级统计分析,用于统计系统所有数据。工作量统计统计所有用户的工作量。从左侧管理菜单点击工作量统计进入。您可以根据添加人,时间条件进行筛选。并可导出结果为excel文件。站点信息统计统计所有站点的信息量。从左侧管理菜单点击站点信息统计…

sensor曝光量和曝光行的区别_企业SEO,如何利用行业关键词,提高产品曝光量?...

每一个企业,基于网络营销而言,对方都期望,自身的产品能够借助相关营销工具,获得不错的产品曝光量。特别是百度SEO,如果前期你的准备工作不足,你基于搜索所获得的曝光量,总是杯水车薪的。那么&am…

用HTML+CSS编写一个计科院网站首页的静态网页

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算机科学学院</title><link href"css/bgcss.css" rel"stylesheet"> </head> <body><!--顶部图片部…

社交网站部署——SVN服务器搭建并发布上线

案例概述 某公司的社交网站采用PHP语言开发&#xff0c;为了管理PHP程序员开发的代码&#xff0c;上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上&#xff0c;前端为Nginx服务器&#xff0c;通过fastcgi协议访问后端的PHP服务器。为了保证数据…

鸿蒙os开发网站,华为鸿蒙系统最新消息,HarmonyOS 应用开发在线体验网站上线

原标题&#xff1a;华为鸿蒙系统最新消息&#xff0c;HarmonyOS 应用开发在线体验网站上线华为的鸿蒙系统从开发之初就受到了大家的广泛关注&#xff0c;从一开始的“备胎”到现在最新的HarmonyOS 2.0版本&#xff0c;华为鸿蒙系统在成长过程中也是经历了不少的波折。今天&…

如何屏蔽https网站,禁止https网站的访问?

HTTPS&#xff08;HTTP over SSL&#xff09;由于其通讯协议的特殊性&#xff0c;域名信息和访问的URL等都处于SSL加密保护下&#xff1b;所以大部分的路由器系统都无法对https网站的域名进行过滤和屏蔽。而诸如WFilter这样的专业级上网行为管理产品&#xff0c;则可以对流量进…

vue项目的seo

2019独角兽企业重金招聘Python工程师标准>>> 不可否定的是&#xff0c;vue现在火。但是在实际项目中&#xff0c;特别是像一下交互网站&#xff0c;我们不可避免会考虑到的是seo问题&#xff0c;这直接关系到我们网站的排名&#xff0c;很多人说用vue搭建的网站不能…

屏蔽复制网站内容时弹出的提示

例如chrome浏览器&#xff0c;在设置里把JavaScript关掉就行了 url地址栏输入chrome://settings/content/javascript?searchjavascript

网站设计HTML——百度 滚筒洗衣机

滚筒洗衣机的效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>滚筒洗衣机销售排行榜</title> </head> <body> <div><h1>滚筒洗衣机销售排行榜</h1><div&g…

linux救援模式使用yum,centos如何进救援模式_网站服务器运行维护,centos

如何解决CentOS7系统ifconfig无法使用的情况_网站服务器运行维护CentOS7系统ifconfig无法使用的解决方法&#xff1a;首先查看“ifconfig”命令所需要的安装包&#xff1b;然后使用“#yum -y install net-tools”命令安装软件&#xff1b;最后使用“ifconfig”查看IP信息即可。…

如何删除ppt自带背景音乐_把网站搬进PPT里是种怎样的体验?

本文总计&#xff1a;2477 字预计阅读时间&#xff1a;10 分钟昨天&#xff0c;我给大家推荐了一个酒类产品的官网&#xff0c;不知道大家看过没。要是没看过的话&#xff0c;也没有关系&#xff0c;因为我用 PPT 把这个网站仿制了一下。保留了主要元素&#xff0c;以及大部分的…

mysql网站中文乱码,关于MySQL中文乱码的完美解决方案

当用客户端或用其他方式连接数据键入中文数据后&#xff0c;在client中的显示为乱码&#xff0c;当然这是字符集设置出现了问题。我先后尝试了很多办法&#xff0c;但依然还是无法在client中显示中文&#xff0c;我尝试在my.ini中修改一下数据在[client]中加入。# Here follows…

php asp.net mvc jsp,IIS部署asp.net mvc网站的方法

iis配置简单的ASP.NET MVC网站&#xff0c;供大家参考&#xff0c;具体内容如下编译器&#xff1a;VS 2013本地IIS&#xff1a;IIS 7操作系统&#xff1a;win 7MVC版本&#xff1a;ASP.NET MVC4sql server版本: 2008 r2打开VS 2013&#xff0c;新建一个MVC项目(Internet版的),然…