1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python爬虫及数据可视化分析

python爬虫及数据可视化分析

时间:2018-09-06 10:14:29

相关推荐

python爬虫及数据可视化分析

python爬虫及数据可视化分析

1.前言2.数据爬取2.1定位到爬取数据2.2爬虫实现方法3.数据可视化分析3.1将短文学网的各类文章做一个统计3.2对某一类文章进行分析

1.前言

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

2.数据爬取

2.1定位到爬取数据

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

2.2爬虫实现方法

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

import requestsurl = '/article/5034441.html'doc = requests.get(url)print(doc.text)

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

import requestsfrom bs4 import BeautifulSoupurl='/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)

输出结果:

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

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

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

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

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

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()

结果:

饼状图:

plt.figure(figsize=(30, 30)) #设置大小plt.pie(y,labels = x, autopct='%1.1f%%')plt.axis('equal')plt.show()

结果:

通过对柱形图和饼状图的观察,可以发现在短文学中,“散文随笔”,“心情随笔”,“散文诗”,“散文文字”,“经典语录”类的文学作品占大部分(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()

结果:

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。