不知道各位有没有发现,近期世界各地的地震频率很频繁,微博上时常报到哪里哪里又发生地震了。不知道地球是咋了,不过自然会联想到一个问题:这些地震之间有没有什么联系?

所以,今天就来通过 Python  爬虫并可视化近一年全球地震的情况。

打开谷歌,搜索发现了一个网站:中国地震台网:

url:http://news.ceic.ac.cn/index.html

在该网站可以查看最新的全球地震信息,还支持地图显示地震信息,历史查询等。

毫无疑问,这句是我们需要的网站,那么我们接下来就来实现最近一年全球所有的地震信息爬取。

网站分析

首先,根据我们设计的需求,我们需要爬取最近一年的所有地震信息,我们找到快捷查询,按时间选择最近一年内地震,即可显示最近一年地震信息。

可以看到一共有59页,所以我们需要分析翻页URL。

试着点击第二页,第三页或尾页,我们可以发现网站的URL是固定不变的,我们大概率可以确定这些数据的加载来源都是通过后台js加载得到的,我门进行再次验证。

我们f12进入谷歌开发者模式,查看选择第二页对应的Elements模块的内容,可以看出 href="javascript:void (0)",很明显是通过js加载的。

我们还可以把网页设置启用或禁用JavaScript,可通过浏览器设置,也可以通过谷歌浏览器插件实现,推荐一下我使用的插件Toggle JavaScript。

比如,我们点一下这个插件便签然后再刷新网站试试,根据页面显示内容足以证明我们的猜想。

接下来,我们就需要找到它的加载js内容文件或者使用最直接的selenium进行实现。

我们在开发者模式中选择Network模块点击XHR,然后点击第二页,第三页,多点几页,在这个过程中你会发现每点击一页增加一个文件。

可以基本确定,这就是我们需要的,点击进去查看,Response有需要的内容,把链接复制到浏览器打开查看。

可以明显看出,这就是我们需要的数据,那么我们可以知道,每一页就是一个这个文件内容,我们只要构造59个这样的URL链接进行爬取即可。

URL链接为:

  • http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=1&&callback=jQuery18009545762559523003_1565244345462&_=1565244347921

  • http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=2&&callback=jQuery18009545762559523003_1565244345462&_=1565244352936

  • http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=3&&callback=jQuery18009545762559523003_1565244345462&_=1565244355966

可以看出,链接中page决定的是页数,后面的_是动态的就是可变的,其他都是不变的,看到这一串东西,如果有经验一看就知道是时间戳了,我们来验证下。

我们可以试着把1565244347921 这串数据变成当前时间看看,这就是我刚刚登录的时间。

分析到这里,我们可以构造爬取URL了,接下来我们进行爬虫代码实现吧。

小提示,其实根据我的验证:

  • http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=1&&callback=jQuery18009545762559523003_1565244345462&_=1565244347921

  • http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=1

这两个URL返回的内容是完全一样的,所以我要说啥,你懂得!

爬虫代码实现

爬虫实现的基本三步:

  1. 发起请求,获取网页

  2. 解析提取网页内容

  3. 数据存储

验证是否可获得内容,requests发起请求,cchardet的作用是判断编码类型。

第一步,requests发起请求,进行网页下载。主要定义了ua用户代理,处理了编码类型问题,做了个网页状态码验证是否为200成功,成功则返回页面内容信息。

第二步,进行返回内容解析,很简单,直接把它转为字典形式,根据key提取value即可完成内容解析工作。

第三步,进行数据保存为csv文件格式。

最后,构造59页URL进行爬取即可。

爬取结果如下:

其实还有个更方便直接的方法,就是这个网站还是很友好的,他可以直接保存数据到本地,下载xls数据文件。

不过,这样的话有些信息就得不到了,根据个人所需选择数据获取方式即可。当然这里只是爬取了最近一年的全球地震数据,你也可以根据自己定义时间爬取更多,方式是一样的,授人以鱼不如授人以渔,“渔“已经教给你了,接下来就很容易了。下图就是历史查询,根据自己定义时间等进行数据显示后进行爬取即可。

数据可视分析

首先,查看一下数据。

近一年全球震级级别最高的十个地方

先来看一看近一年全球震级级别最高的十个地方是哪些,关键代码编写如下:

结果可视化如下图:

可以看到,地震级别最高的分别是斐济群岛地区和秘鲁北部分别达到了8.1级和7.8级,值得一说的是第三名也是斐济群岛地区,地震级别同样高达7.8级,其他就是近一年全球地震级别top10都是外国地区。

近一年每个月份发生地震数量对比情况

先来看一看近一年每个月份发生地震数量都是多少,关键代码编写如下:

结果可视化如下图:

可以看到,除去前面的不看,最少发生地震的9月份也达到了70次,最高的6月份和8月份分别达到了恐怖的144和143次之多,也就是等于每一天发生4.8次左右。其中,可以得到近一年中每月平均发生100次左右,平均每天发生3.3次左右。

统计近一年中同一地方发生地震的次数

先来看一看近一年中同一地方发生地震的次数都是多少,关键代码编写如下:

结果可视化如下图:

可以看到,近一年同一地方发生地震次数最多的前十名有9个都是我国的地区,看来我国真是地震高发区啊,而且前两名都是中国四川的,希望地震少点,伤亡少点。

统计近一年中地震级别高低具体的次数

先来看一看近一年中地震级别高低具体的次数都是多少,关键代码编写如下:

结果可视化如下图:

可以看到,最近一年地震级别的占比来看,低级别地震占大多数,而且3.0级地震占了近一年的10.9%,前10名中都不会超过6级地震,大多数围绕在3级左右。

制作近一年地震高频地区词云分析图

关键代码如下:

词云实现图为:

以上,我们爬取并分析了近一年全球的地震信息,让你感受下地震到底离你有多近,中国在地震高频地区top10中占了9个位置。

文中完整代码和素材,在后台回复:地震 即可获得。

全球地震 Python 爬虫可视化,最频发的地方是这里!相关推荐

  1. 【爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】

    [爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩] https://b23.tv/TIoy6hj

  2. 【【数据可视化毕业设计:差旅数据可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】-哔哩哔哩】 https://b23.tv/iTt30QG

    [[数据可视化毕业设计:差旅数据可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩]-哔哩哔哩] https://b23.tv/iTt30QG ht ...

  3. python爬虫可视化excel_Python爬虫以及数据可视化分析!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 下面,我们开始吧! PS: 作为Python爬虫初学者,如有不正确的地方,望各路大神不吝赐教[抱拳] 本项目将会对B站番剧排行的 ...

  4. python爬虫可视化web展示_基于Python爬虫的职位信息数据分析和可视化系统实现

    1. 引言 在这个新时代,人们根据现有的职位信息数据分析系统得到的职位信息越来越碎片化,面对收集到的大量的职位信息数据难以迅速地筛选出对自己最有帮助的职位信息,又或者筛选出信息后不能直观地看到数据的特 ...

  5. Python爬虫可视化第1季-城市旅游数据分析

    前言: 本着跟大家一同探讨学习的态度,今后几期文章会更新一些用python实现爬虫&可视化的文章.Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首 ...

  6. Python爬虫+可视化分析技术实现招聘网站岗位数据抓取与分析推荐系统

    程序主要采用Python 爬虫+flask框架+html+javascript实现岗位推荐分析可视化系统,实现工作岗位的实时发现,推荐检索,快速更新以及工作类型的区域分布效果,关键词占比分析等. 程序 ...

  7. python爬虫beautifulsoup爬当当网_利用python爬虫可视化分析当当网的图书数据!

    导语 这周末就分享个小爬虫吧.利用Python爬取并简单地可视化分析当当网的图书数据. 开发工具 Python版本:3.6.4 相关模块: requests模块: bs4模块: wordcloud模块 ...

  8. 利用python爬虫可视化分析当当网的图书数据

    导语 这周末就分享个小爬虫吧.利用Python爬取并简单地可视化分析当当网的图书数据. 开发工具 **Python版本:**3.6.4 相关模块: requests模块: bs4模块: wordclo ...

  9. 股票交易数据采集+数据可视化(一个朴素无华的Python爬虫+可视化案例,附代全部代码)

    前言 我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找,找到之后是不是看着密密麻麻的数据是不是头都大了? 今天带大家爬取雪球平台 ...

  10. python爬虫可视化界面_python爬虫---垃圾分类可视化界面

    在以前我写了一个对垃圾进行分类的exe程序,功能齐全了可是外观看起来不怎么好看,所以我用python中的tkinter库写了一个对垃圾分类可视化的一个程序,而后打包成了一个exe. 1.展现界面效果 ...

最新文章

  1. python重难点之装饰器详解
  2. CSS flex 用法
  3. sap 新建事务_SAP操作常用事务代码(大全)
  4. 关于 element 的 backToTop
  5. cannot open line '/dev/tty.usbserial' for r/w resource busy
  6. Hibernate 关联映射 之 多对多 关联(一)
  7. 【企业管理】如何降低内部成本
  8. sysbench压力测试工具简介和使用(一)
  9. Shell 简单的java微服务jar包 -- 部署脚本
  10. 她说:行!嫁人就选程序员!
  11. 基础测试题(字符串、列表、元组、字典)
  12. android的toogleButton和switch的使用方法
  13. openssl在arm下的交叉编译
  14. java入门-dos窗口的用法
  15. matlab画多個平面,matlab的平面二维图的绘制.ppt
  16. Maven实战_许晓斌
  17. win10 SystemParametersInfo 设置屏保 不好使_抖音网红屏保时钟软件(附使用教程)...
  18. Mac-----Mac安装虚拟机
  19. Zeppelin解释器的REST API接口
  20. Java项目:图书管理系统(java+JSP+layui+bootstrap+Servlet+Mysql)

热门文章

  1. sar adc的常用指标(一)
  2. Android画正N边形战力图
  3. 测试网站速度的8款免费工具推荐
  4. 运筹说 第55期丨整数规划先驱——Ralph Gomory
  5. GitHub中国区前100名到底是什么样的人?向大佬们学习。
  6. 第十届蓝桥杯单片机组(省赛代码)
  7. android app开机启动画面,Android-如何设置APP开机启动(图文)
  8. 2003iso序列号
  9. Java多态实例主人和狗狗企鹅玩游戏
  10. 半导体储存器例题小试--十安辰