使用python获取(宜宾市地震信息)地震信息


Posted in Python onJune 20, 2019

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

使用python获取(宜宾市地震信息)地震信息

虽然自己还不能写出这么牛逼的系统,但是今天我想结合自己学到的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())}。

使用python获取(宜宾市地震信息)地震信息 

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.结果展示

使用python获取(宜宾市地震信息)地震信息

4.总结

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

以上所述是小编给大家介绍的使用python获取(宜宾市地震信息)地震信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python缩进和冒号详解
Jun 01 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python中xlutils库用法浅析
Dec 29 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 11 Python
一篇文章了解Python中常见的序列化操作
Jun 20 #Python
python集合是否可变总结
Jun 20 #Python
Django如何自定义model创建数据库索引的顺序
Jun 20 #Python
pyqt 多窗口之间的相互调用方法
Jun 19 #Python
pyqt5 实现多窗口跳转的方法
Jun 19 #Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 #Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 #Python
You might like
PHP学习之PHP表达式
2006/10/09 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
python中Genarator函数用法分析
2015/04/08 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python常用知识点汇总
2016/05/08 Python
python中常用的九种预处理方法分享
2016/09/11 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
如何掌握自荐信格式呢
2013/11/19 职场文书
升国旗演讲稿
2014/09/05 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
机关作风建设自查报告
2014/10/22 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
高质量“欢迎词”
2019/04/03 职场文书