项目介绍:

地震(英文名称:earthquake)又称地动、地振动,是地壳快速释放能量过程中造成的振动,期间会产生地震波的一种自然现象。地球上板块与板块之间相互挤压碰撞,造成板块边沿及板块内部产生错动和破裂,是引起地震的主要原因。 地震开始发生的地点称为震源,震源正上方的地面称为震中。破坏性地震的地面振动最烈处称为极震区,极震区往往也就是震中所在的地区。地震常常造成严重人员伤亡,能引起火灾、水灾、有毒气体泄漏、细菌及放射性物质扩散,还可能造成海啸、滑坡、崩塌、地裂缝等次生灾害。据统计,地球上每年约发生500多万次地震,即每天要发生上万次的地震。其中绝大多数太小或太远,以至于人们感觉不到;真正能对人类造成严重危害的地震大约有十几二十次;能造成特别严重灾害的地震大约有一两次。人们感觉不到的地震,必须用地震仪才能记录下来;不同类型的地震仪能记录不同强度、不同远近的地震。世界上运转着数以千计的各种地震仪器日夜监测着地震的动向。地震成因:地球表层的岩石圈。地壳岩层受力后快速破裂错动引起地表振动或破坏就叫地震。由于地质构造活动引发的地震叫构造地震;由于火山活动造成的地震叫火山地震;固岩层(特别是石灰岩)塌陷引起的地震叫塌陷地震。

确定爬取的网站目标:

http://www.ceic.ac.cn/history

中国地震网的历史数据

获取字段为:震级(M)、发震时刻(UTC+8)、纬度(°) 、经度(°) 、深度(千米) 、 参考位置

安装环境:

pip install requests

pip install json

pip install lxml

pip install openpyxl

pip install time

pip install cchardet

pip install datetime

pip install pymysql

分析网站获取链接:

通过检查工具分析网站所有的请求链接

发现数据变化的是page和尾巴两个参数,page代表的是当前的页面 最后一个参数是一个时间戳 我们可以使用时间戳转换工具转换一下看看

可以看出转换后是当前访问网站的时间,我们可以datetime获取当前时间并转换成时间戳

对url进行拼接操作:

使用requests进行爬取 ,爬取过程中发现出现乱码的情况 使用cchardet检测字节是属于什么类型的编码 然后对于编码做一个转换


.
对请求下来的内容进行解析发现无法直接解析在请求下来内容前面有一串参数,

对于他进行删除在放到转换器上转换

删除后直接转换成字典类型

数据解析:

解析出来需要的内容:

完整思路:

创建数据并且循环出所有的页面page参数 将参数传递给链接拼接函数 main()

对于所有的链接进行拼接然后将链接传递给请求函数

对于所有链接进行请求,请求下来的内容传递给分析函数

对请求的内容进行解析 并保存进数据库

将数据保存进exel:

完整代码

list1=[]
def main(page):#链接后的参数是一个时间戳  所以实时获取当前时间 然后转换成时间戳times=datetime.now().strftime('%Y-%m-%d %H:%M:%S')timeArray = time.strptime(times, "%Y-%m-%d %H:%M:%S")timeStamp = int(time.mktime(timeArray))#转换时间戳time.sleep(5)url=f'http://www.ceic.ac.cn/ajax/search?page={page}&&start=2000-12-06&&end=2020-12-06&&jingdu1=&&jingdu2=&&weidu1=&&weidu2=&&height1=&&height2=&&zhenji1=&&zhenji2=&&callback=jQuery180031232585725055584_1607253668377&_={timeStamp}'html=download(url)#将生成的链接传入数据请求函数# print(html)parst_html(html)downloader(list1)#将获取到的数据传入保存函数处理# print(list1)def download(url):headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"}data=requests.get(url,headers)encoding=cchardet.detect(data.content)['encoding']html=data.content.decode(encoding)return htmldef parst_html(html):print("连接成功")# 因为请求下来的数据前有一个数据无法直接对他进行转换所以我们将他进行删除json_data =html.replace('jQuery180031232585725055584_1607253668377','')#删除请求下来的数据中前的一段数据json_data = eval(json_data)#转换成字典for i in json_data['shuju']:latitude=i['EPI_LAT']#维度longitude=i['EPI_LON']#经度depth=i['EPI_DEPTH']#深度location=i['LOCATION_C']#参考位置timg=i['SYNC_TIME']#时间Magnitude=i['M']#震级print(Magnitude)list1.append([latitude,longitude,depth,location,timg,Magnitude])cursor.execute("insert into sina2(latitude,longitude,depth,location,timg,Magnitude) values('{}','{}','{}','{}','{}','{}')".format(latitude,longitude,depth,location,timg,Magnitude))
def downloader(list1):pass# 将数据保存成xlsxwb = openpyxl.Workbook()sheet = wb.activesheet.title = "dizhengshuju"  for row in list1:sheet.append(row)wb.save("dizhengshuju6.xlsx")print("成功")if __name__=='__main__':com=pymysql.connect(host="127.0.0.1",port=3306,user="root",password="xufujie",db="edu")try:with com.cursor() as cursor:sql1='''DROP TABLE IF EXISTS `sina2`'''cursor.execute(sql1)sql='''create table `sina2`(`id` int(11)not null auto_increment,`latitude` varchar(255) ,primary key(`id`),`longitude` varchar(255) ,`depth` varchar(255),`location` varchar(255),`timg` varchar(255),`Magnitude` varchar(255))engine=innodb auto_Increment=1 default charset=utf8;'''cursor.execute(sql)for page in range(1,425):main(page)com.commit()finally:com.close()

爬取中国地震网地震数据相关推荐

  1. 技术图文:如何利用 C# 爬取 ONE 的交易数据?

    投资一个金融产品,最基本的就是拿到这个金融产品的交易数据,对这些数据进行可视化来判断趋势.去年,我在听 李笑来 讲区块链的课程上知道了 BigOne 这个由 INB 投资的交易所,而 ONE 是 Bi ...

  2. 如何利用 C# 爬取 One 持有者返利数据!

    去年,10月份写过一篇图文 「One」的投资价值分析,多半年过去了,回头看看当时的判断还是合理的. 投资这种事情需要有自己的策略,更需要理性.任何决策都需要以数据作为判断的基础,哪么是否还继续持有 O ...

  3. 爬取广州所有停车场数据(Python)(并行加速版本)

    之前做过这个的单进程版本.这次使用多进程来实现~ 爬取广州所有停车场数据(Python) 大家可以对比着看一下,在原来的单进程爬虫的基础进行改进而得到的产品. import requests impo ...

  4. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  5. 简书=鸡汤?爬取今日看点数据:1916篇简书热门文章可视化

    一.前言 最近写得两篇关于简书的数据可视化文章:<简书推荐作者风云榜(爬取简书app数据)>.<我的简书一月记:数据可视化>反响都还不错,因而将继续针对简书进行数据分析和可视化 ...

  6. python爬取的信息条数比页面显示多_Python爬取分析北京二手房数据?数据结果真的太吓人了...

    有个朋友联系我,想统计一下北京二手房的相关的数据,而自己用Excel统计工作量太过于繁杂,问我用Python该如何实现. 构造要访问的URL 这里,我试着抓取北京海淀区二手房的相关数据.首先,是观察一 ...

  7. WebMagic爬取58同城租房数据

    WebMagic爬取58同城租房数据 1.WebMagic webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发.webmagic的核心非常简单,但 ...

  8. python爬取豆瓣电影信息数据

    题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

  9. Python+BI爬取3000条车厘子数据,发现了这些秘密

    听说最近车厘子的价格突然猛跌,之前很多人梦寐以求的"车厘子自由",现在都能实现了.其实车厘子的价格下降,主要原因是进口货运成本的大大降低,为了找到车厘子最佳的购买方式,我决定用py ...

  10. python实战|python爬取58同城租房数据并以Excel文件格式保存到本地

    python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...

最新文章

  1. 音乐处理---H_music.php
  2. java代码段替换,java-片段添加或替换不起作用
  3. 实训项目2Linux基本命令,实训项目2 Linux文件系统管理
  4. 分享 - Social.framework
  5. 瑞柏匡丞_移动互联的发展现状与未来
  6. 贾跃亭旗下FF公司遭做空 美国机构质疑其造车能力:卖不出一辆FF91
  7. Sublime text 3 快捷键
  8. python的基本概念_Python必学基础概念
  9. fme坐标转换器_利用FME做坐标转换
  10. 【论文笔记】Exploring Self-attention for Image Recognition
  11. 交互设计师需要具备什么样的专业能力
  12. idea关闭当前窗口的快捷键
  13. 高级启动选项重装计算机,如何使用高级选项重装win10系统?重装win10系统方法...
  14. 00 石锅土鲫鱼项目导语
  15. [advGAN]Generating Adversarial Examples With Adversarial Networks
  16. OpenCV截取一段视频
  17. 基于java的智能手表_五款智能手表功能比较
  18. ev ev2 evplayer2加密视频播放器翻录录屏教程
  19. Matlab GUI鼠标画线
  20. 程序员笔试之京东2021测试开发工程师 单选题收集整理(三)

热门文章

  1. ubuntu20.04安装交叉编译工具链流程
  2. 摩斯电码php源码,PHP生成基于文本的摩斯电码
  3. 阅读笔记——基于CART决策树的计算机网络课程学生成绩分析
  4. Opencv摄像头相关参数
  5. 汉宁窗+matlab,m汉宁窗hanning汉明窗hamming矩形窗-read.ppt
  6. 合并两个有序数组(Python)
  7. jQuery实现表单提交验证
  8. 信息技术专项习题汇总
  9. 英文环境中Wine微信不能显示中文
  10. 一天一个产品分析之抖音短视频_米米米米粒口红_新浪博客