python获取地震信息 微信实时推送


Posted in Python onJune 18, 2019

本文实例为大家分享了python获取地震信息微信实时推送的具体代码,供大家参考,具体内容如下

import requests,time
from lxml import etree
from wxpy import *
 
# 微信登陆
bot = Bot()
# 查找好友
group = bot.groups().search('珍爱生命 远离lisp')[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分钟更新一次)'
   # 发送信息
   group.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分钟更新一次)'
    # 发送信息
    group.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)

# 运行后10秒左右会有弹框显示二维码,扫描后即登陆自己的账号,并选择匹配的讨论组名称进行发送.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的randrange()方法使用教程
May 15 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
Django异步任务之Celery的基本使用
Mar 23 Python
Python之pymysql的使用小结
Jul 01 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
django ajax发送post请求的两种方法
Jan 05 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
如何利用python进行时间序列分析
Aug 04 Python
python实现月食效果实例代码
Jun 18 #Python
详解Python3中setuptools、Pip安装教程
Jun 18 #Python
Python生成指定数量的优惠码实操内容
Jun 18 #Python
python实现文件的备份流程详解
Jun 18 #Python
python绘制地震散点图
Jun 18 #Python
python f-string式格式化听语音流程讲解
Jun 18 #Python
python实现雪花飘落效果实例讲解
Jun 18 #Python
You might like
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
JS 控制CSS样式表
2009/08/20 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
node.js监听文件变化的实现方法
2019/04/17 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
现金出纳岗位职责
2014/03/15 职场文书
新店开张活动方案
2014/08/24 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
无罪辩护词范文
2015/05/21 职场文书
2016高考感言
2015/08/01 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
总结高并发下Nginx性能如何优化
2021/11/01 Servers
mysql中整数数据类型tinyint详解
2021/12/06 MySQL