python爬虫数据可视化软件_python爬虫及数据可视化分析

1.前言

本篇文章主要介绍python爬虫及对爬取的数据进行可视化分析,本次介绍所用的网站是(https://www.duanwenxue.com/jingdian/zheli/)

2.数据爬取

2.1定位到爬取数据

打开我们要爬取的网页,右键选择检查,在窗口中单击左上角箭头,即可查看我们需要爬取的内容:

5e19bbc4db77caef9b7343c9253fa4f4.png

2.2爬虫实现方法

我们要爬取一个网页,首先我们需要向网页发送一个请求,然后用get方法抓取数据(例如我要爬取https://www.duanwenxue.com/jingdian/zheli/的内容)

import requests

url = 'https://www.duanwenxue.com/article/5034441.html'

doc = requests.get(url)

print(doc.text)1

2

3

4

通过这个方法获得数据是整个网页的源码,接下来我们,接下来要从源码中找到并提取数据。Beautiful Soup 是 python 的一个库,其最主要的功能是从网页中抓取数据。(例如我要获得https://www.duanwenxue.com/article/5035160.html的散文)

import requests

from bs4 import BeautifulSoup

url='https://www.duanwenxue.com/article/5034441.html'

html=requests.get(url)

html.encoding='gbk'

doc=BeautifulSoup(html.text,'lxml')

a=doc.find('span',{'id':'audio-span'})

c=doc.find('div',{'id':'shangDiv'})

a.decompose() # 删除无用信息

c.decompose()

cont=doc.find('div',{'class':'article-content'}).findAll('p')

content=''

for i in cont:

print(i.text)1

2

3

4

5

6

7

8

9

10

11

12

13

14

输出结果:

人生实在当下,生活唯有形态在奋斗。——余昌开

当下就是人生实现梦想奋斗时。——余昌开

人务必从今开始,努力奋斗,实现人生的理想。——余昌开

人活着最务实的形态,是现在正在奋斗人生美好的进行中。——余昌开

版权作品,未经《短文学》书面授权,严禁转载,违者将被追究法律责任。

3.数据可视化分析

数据可视化是数据分析很重要的一部分,将数据进行可视化,更直观的呈现使数据更加客观、更具说服力。

matplotlib是用来创建图表的工具包之一,是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。

3.1将短文学网的各类文章做一个统计

柱形图:

plt.rcParams['font.sans-serif']=['SimHei']

plt.figure(figsize=(10,10))

plt.xticks(rotation=45)

plt.title("各类文章数目")# 标题

plt.xlabel("文章类型")#横坐标名字

plt.ylabel("数量")#纵坐标名字

plt.bar(x, y)

for x,y in zip(x,y): plt.text(x,y,"{f}".format(f=y),ha="center",va='bottom')

plt.show()1

2

3

4

5

6

7

8

9

10

结果:

f2d748cc31c33cd56f392679c5972b18.png

饼状图:

plt.figure(figsize=(30, 30)) #设置大小

plt.pie(y,labels = x, autopct='%1.1f%%')

plt.axis('equal')

plt.show()1

2

3

4

结果:

2f784a44419730aa9632ea37472966d9.png

通过对柱形图和饼状图的观察,可以发现在短文学中,“散文随笔”,“心情随笔”,“散文诗”,“散文文字”,“经典语录”类的文学作品占大部分(82%),而其他类型的作品占小部分(18%)。

3.2对某一类文章进行分析

我们选择对励志文章的标题进行分析,通过标题的重点词汇生成词云,反映出这类文章的大致内容趋向于哪一方面。

代码如下:

stopwords={'你','我','的','自己'}# 去掉无用的词

word_cut=jieba.cut(word_content)

word_cut_join=" ".join(word_cut)#把分词用空格连起来

#生成词云

wc=WordCloud( font_path='simsun.ttc',#设置字体 max_words=100,#词云显示的最大词数 # mask=mask_img,#设置背景图片 stopwords=stopwords, background_color='white'#背景颜色 ).generate(word_cut_join)

plt.imshow(wc)

plt.axis('off')#去掉坐标轴

plt.savefig('title.jpg')

plt.show()1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

结果:

206a0ad3059ba88e0717edcbe5bf14de.png

可以看到,多次出现的大学有 “河南”,“科技”,“大学”,“农学院”。

以上便是本文全部内容,代码只包含主要部分,关于数据可视化还有其他几种方法,具体可查看python使用Matplotlib画图。

文章来源: blog.csdn.net,作者:Tbaodeng_T,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Tbaodeng/article/details/111825063

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

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

相关文章

java趣事_【趣事】Java程序员最年轻,C++程序员最年老

原标题:【趣事】Java程序员最年轻,C程序员最年老说起我们对编程世界现有的刻板印象,你一定听说过类似于没有人喜欢用Java编码或者使用C 都是老人家,等等这样的话。为了分析这些刻板印象背后的真相,Trestle Technology的…

koa2 mysql 中间件_Koa2 和 Express 中间件对比

koa2 中间件koa2的中间件是通过 async await 实现的,中间件执行顺序是“洋葱圈”模型。中间件之间通过next函数联系,当一个中间件调用 next() 后,会将控制权交给下一个中间件, 直到下一个中间件不再执行 next() 后, 将会沿路折返,将控制权依次交换给前一…

qt 飞扬青云_Qt编写带频谱的音乐播放器

之前有个项目需要将音频文件的频谱显示出来,想了很多办法,后面发现fmod这个好东西,还是跨平台的,就一个头文件一个库文件就行,简单小巧功能强大,人家做的真牛逼。为了不卡住界面,采用了多线程处…

java什么是工作流程_springmvc工作流程是什么

springmvc工作流程是什么:1、springmvc工作原理图2、springmvc工作流程1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知&#…

java se入门_java SE 入门之运算符(第三篇)

在 java 中主要有以上运算符,分为 赋值运算符 ,算术运算符、关系运算符(比较运算符),逻辑运算符和三目运算符(三元运算符).我们一起来学习下吧!一、赋值运算符赋值运算符主要有五个、分别是 (赋值)、(加上一个在赋值)、-(减去一个在赋值)、*…

java7最后战线_我的世界最后战线2.0整合包

我的世界1.7.2最后战线The end battle line正式V2修复版是我的世界最后战线2.0整合包。游戏信息地图名字: The End Battle Line「正式版」地图分类: 其他地图类型: 存档地图版本: 后期Anvil格式(1.3)游戏介绍>>前言<<经过了半学期加整整大半个暑假的努力&#xff0…

java敏感异常是什么_java中的异常是什么?

Throwable(所有error和exception的父类:超类)Java将错误变成对象交给异常处理机制Error(仅靠程序本身无法恢复的严重错误)一般是环境的问题&#xff0c;JVM的问题&#xff0c;并非程序的问题&#xff1b;最典型的就是虚拟机中运行的程序过多&#xff0c;造成的虚拟机内存溢出&a…

java为什么不推荐使用stack_栈和队列的面试题Java实现,Stack类继承于Vector这两个类都不推荐使用...

在 thinking in java中看到过说Stack类继承于Vector&#xff0c;而这两个类都不推荐使用了&#xff0c;但是在做一到OJ题时&#xff0c;我用LinkedList来模拟栈和直接用Stack&#xff0c;发现在进行入栈出栈操作时Stack的速度竟然还快一点然而需要多线程的时候有Collections.sy…

reducebykeyandwindow java_Spark Streaming笔记整理(三):DS的transformation与output操作

[TOC]DStream的各种transformationTransformation Meaningmap(func) 对DStream中的各个元素进行func函数操作&#xff0c;然后返回一个新的DStream.flatMap(func) 与map方法类似&#xff0c;只不过各个输入项可以被输出为零个或多个输出项filter(func) 过滤出所有函数func返回值…

php学好要多久,零基础php自学要多久

万事开头难&#xff0c;自学编程也是一样&#xff0c;只要能入门&#xff0c;在学起来就容易多了&#xff0c;那么零基础自学编程多久才可以入门呢&#xff0c;如何才能找到自学编程的门道呢&#xff1f; (推荐学习&#xff1a;PHP视频教程)零基础自学编程也可以&#xff0c;关…

php laravel 优点,Laravel 特点有哪些?

Laravel特点&#xff1a;1、“artisan”命令行工具&#xff0c;可以自动化完成手动的工作&#xff1b;2、“migration”管理数据库和版本控制&#xff1b;3、测试功能也很强大&#xff1b;4、适合应用各种开发模式TDD、DDD和BDD&#xff1b;5、支持Composer包管理工具。Laravel…

php+代码行数常量,php统计文件中的代码行数

函数介绍&#xff1a;file_get_contents()把整个文件读入一个字符串中。explode() 函数使用一个字符串分割另一个字符串&#xff0c;并返回由字符串组成的数组。count() 函数返回数组中元素的数目。在线视频教程分享&#xff1a;php视频教程示例如下&#xff1a;public functio…

PhP加载时显示动画,在ajax请求完之前的loading加载的动画效果实现

这篇文章给大家介绍的内容是关于在ajax请求完之前的loading加载的动画效果实现&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。很多时候我们需要引入框架来开发项目&#xff0c;这时我们可能会遇到页面还没加载完源码出来了的…

mybatis连接oracle12乱码,使用mybatis链接oracle数据库出现账号密码错误解决

使用mybatis链接oracle数据库步骤最近oracle老师布置下来了作业&#xff0c;要求使用传统的java代码链接oracle数据库做一个小程序&#xff0c;因为我已经很熟练的掌握了ssm框架的开发&#xff0c;以前用的是mysql&#xff0c;现在就尝试尝试oracle来练练手。问题一 oracle 的j…

linux关闭gvim命令,Linux 下 8 种退出 vim 编辑器的方法

Vim被称为一个非常强大的文本编辑器&#xff0c;但同样以其陡峭的学习曲线而闻名。 如果您经常使用命令行&#xff0c;那么至少应该学习一些基本功能。 如果你没有花时间去学习它&#xff0c;即使像退出Vim这样简单的事情也很困难。Vim是一套独立的软件&#xff0c;它有自己的一…

编译 linux 3,linux内核的编译(3)

linux内核的编译(3)2008-02-23 07:17:46来源&#xff1a;互联网 阅读 ()无论什麽档名)&#xff0c;然後将你做的 zImage 拷贝进去&#xff0c;(例如&#xff0c;如果你用” /vmlinuz ″的话&#xff0c;就像这样″ cp zImage /vmlinuz ”)。接著重新执行 lilo — 在较新的系统上…

linux 端口限速技术,linux下如何实现对每个IP进行限制带宽??

linux下如何实现对每个IP进行限制带宽&#xff1f;&#xff1f;(2011-09-01 01:03:54)标签&#xff1a;杂谈linux下如何实现对每个IP进行限制带宽&#xff1f;&#xff1f;redhatlinux服务器&#xff0c;最近发现单位的网内BT下载、迅雷下载太多&#xff0c;严重影响正常上网&a…

Linux做施压机的最大线程数,关于性能测试的几个要点

几个定义性能测试(Performance Test)通常收集所有和测试有关的所有性能&#xff0c;通常被不同人在不同场合下进行使用。测试软件在系统中的运行性能&#xff0c;度量系统与预定义目标的差距。关注点&#xff1a;how much和how fast负载测试(Load Test)负载测试是一种性能测试&…

线性分组码c语言实验报告,C语言线性分组码(附注释).doc

C语言线性分组码(附注释).doc下载提示(请认真阅读)1.请仔细阅读文档&#xff0c;确保文档完整性&#xff0c;对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档&#xff0c;不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者&a…

杭电2005题c语言答案,杭电2005

题不难&#xff0c;但细节较多&#xff0c;所以。。。不但二月闰年有影响&#xff0c;七八月都是31天&#xff0c;这个也得专门分开讨论&#xff0c;还有就是七八月份开讨论后&#xff0c;加的基数是三到七月的&#xff0c;不能完全复制上面的代码&#xff0c;基数得改~做题还是…