6月17日22分25分,四川省宜宾市长宁县发生了6.0级地震,成都高新减灾研究所与应急管理部门联合建设的大陆地震预警网成功预警本次地震,提前10秒向宜宾市预警,提前61秒向成都预警。

虽然自己还不能写出这么牛逼的系统,但是今天我想结合自己学到的Python知识,用Python获取地震信息,然后微信实时推送给你的群组或你的朋友。

1.前期准备

1.爬虫基本知识,比如requests库,以及lxml库;

2.利用Xpath进行HTML的解析;

之前写的一些简单项目,提取页面信息时使用的是正则表达式,但当项目复杂时,用正则表达式比较烦琐,万一有地方写错了,可能导致匹配失败,所以使用正则表达式提取页面信息多多少少还是有些不方便。

通过最近学习,我知道了在网页中可以通过Xpath或CSS选择器来定位一个或多个节点,再调用相应的方法获取它的正文内容或者属性,可以很方便快捷的提取到我们想要的信息。

3.要实现微信实时推送肯定需要用到wxpy库;

4.本次项目从中国地震台网爬取地震信息,链接为: http:// news.ceic.ac.cn/index.h tml?time= {int(time.time())}。

2.代码整合

import requests, time

from lxml import etree

from wxpy import *

# 微信登陆

bot = Bot()

# 查找好友

my_friend = bot.friends().search(u'stormwen')[0] # 写自己的讨论组名称

with open('log.txt', 'r') as f:

rember = f.readline()

headers = {

'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',

'cookie': 'Hm_lvt_e0025cd5d352165f8a646ccea5beb27d=1543211803; Hm_lpvt_e0025cd5d352165f8a646ccea5beb27d=1543211803',

}

while True:

try:

url = f'http://news.ceic.ac.cn/index.html?time={int(time.time())}'

# 请求数据

res = requests.get(url, headers=headers).text.encode('ISO-8859-1').decode('utf8')

html_ele = etree.HTML(res)

# 返回列表

res = html_ele.xpath('//*[@id="news"]//td//text()')

# 如果日志为空,发送最新的一条地震信息

if rember == '':

msg = f'北京时间:{res[1]},在纬度:{res[2]} ,经度{res[3]} 处发生了{res[0]}级地震,震源深度{res[4]}千米,参考位置:{res[5]}(5分钟更新一次)'

# 发送信息

my_friend.send(msg)

print('日志为空,msg:', msg)

# 如果日志非空,就判断是否是最新的,发送日志之后的所有新的数据

else:

i = res.index(rember)

while i > 1:

i -= 6

msg = f'北京时间:{res[i]},在纬度:{res[i+1]} ,经度{res[i+2]} 处发生了{res[i-1]}级地震,震源深度{res[i+3]}千米,参考位置:{res[i+4]}(5分钟更新一次)'

# 发送信息

my_friend.send(msg)

print('日志非空,msg:', msg)

time.sleep(300)

rember = res[1]

# 更新日志(记录最新发送的地震信息)

with open('log.txt', 'w') as f:

f.write(res[1])

except:

time.sleep(60)

3.结果展示

4.总结

我一直认为语言只是工具,只有用它来做点具体的事,才体现出它的价值。今天这个项目用到了Python的爬虫知识,没有用大家讨厌的正则表达式,而是用一种新的方式解析库,实现对HTML的解析和提取信息,最后又用到前面项目用过的wxpy库,实现了全部功能。

以上所述是小编给大家介绍的使用python获取(宜宾市地震信息)地震信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python 读取地震道头数据_使用python获取(宜宾市地震信息)地震信息相关推荐

  1. python 读取地震道头数据_【Python】OGR库(1):读取矢量数据

    OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...

  2. python读取hadoop库数据_使用Python访问HDFS

    最近接触到大数据,对于Skpark和Hadoop的料及都停留在第一次听到这个名词时去搜一把看看大概介绍免得跟不上时代的层次. 在实际读了点别人的代码,又自己写了一些之后,虽然谈不上理解加深,至少对于大 ...

  3. python读取网络端口数据_在Python中从SNMP端口获取数据

    我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...

  4. python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...

    我有一个处理脚本,用于提取"uint16"类型的二进制数据文件,并一次以6400块的形式进行各种处理.该代码最初是用Matlab编写的,但由于分析代码是用 Python编写的,我们 ...

  5. python从sqlserver提取数据_通过Python读取sqlserver数据写成json文件的总结

    最近在做将sqlserver的数据迁移到redshift上面,然后再做的过程当中出现了很多问题.(通过sqlserver 读取数据,然后写成json文件然后长传到S3上面,然后通过S3copy的形式将 ...

  6. python读取oracle数据库性能_用python对oracle进行简单性能测试

    一.概述 dba在工作中避不开的两个问题,sql使用绑定变量到底会有多少的性能提升?数据库的审计功能如果打开对数据库的性能会产生多大的影响?最近恰好都碰到了,索性做个实验. sql使用绑定变量对性能的 ...

  7. python读取raw图片文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  8. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

  9. python 读取数据库内存爆_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

最新文章

  1. activity 流程编辑器_如何读取APK的Activity(Python实现)
  2. hdu2.1.2 How many prime numbers(计算素数的个数)
  3. SQLserver分页 高效率
  4. 改革收入分配体制 网络电话成通信省钱先锋
  5. 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
  6. Zookeeper工作原理(详细)
  7. easyui mysql手册_easyui api 中文
  8. 【CCCC】L2-007 家庭房产 (25分),并查集,结构统计
  9. 机器学习精讲(向量逼近+函数逼近)学习笔记——第五章
  10. H3C交换机配置的备份与恢复[3CDaemon]
  11. 给我一个支点,我要撬动地球。
  12. [毕业设计]威客网站可行性研究报告书
  13. js简单分页,只有上一页和下一页
  14. Flink框架吐血总结,学习与面试收藏这一篇就够了,大数据必备知识体系
  15. 58 mysql 军规_58到家MySQL军规升级版(转)
  16. 无法安装64位版本的微软Office
  17. HTML+CSS实现心形效果
  18. 关于springmvc拦截器 controll aop执行顺序
  19. zip格式文件打包下载
  20. 棉花糖无线点单服务器授权文件,威海免费无线点菜系统_威海棉花糖免费餐饮管理系统软件...

热门文章

  1. 微博爬虫(python)历险记
  2. 微信公众号发送消息 Java
  3. 基于SSM人才网站招聘网站求职网站就业系统兼职网站职位发布简历上传专业推荐匹配算法(idea-javaweb-javaee-j2ee-springboot)
  4. 【Linux 驱动】CH340驱动使用教程
  5. 问答机器人三种实现方式
  6. DS串应用—最长重复子串
  7. css好看背景色汇总
  8. 宜人贷 PaaS 数据服务平台Genie 简介(一)
  9. LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)
  10. 深度学习中模型训练效果不好的原因以及防止过拟合的方法