python监控疫情

2020-03-01  本文已影响0人  阿飞666666

    2019年新冠状病毒入侵武汉,给中国人民带来巨大的灾难,面对灾难,每一个中国人很关心疫情的发展情况,下面根据python写了一个实时监控疫情的代码,定时给微信发疫情的最新信息,接口分两个模块,分别为:获取疫情实时信息和将获取的信息发送给微信好友

(一)下面是获取疫情实时信息的代码

import requestsas r

import datetime

import time

def yiqing_date():

url ="https://service-f9fjwngp-1252021671.bj.apigw.tencentcs.com/release/pneumonia"

    content = r.get(url)# 请求访问的接口

    try:

json_content = content.json()['data']# 解析json

        update_timestamp = json_content['statistics']['modifyTime']# 获取更新时间的时间戳

        date = datetime.datetime.fromtimestamp(update_timestamp /1000)# 将时间戳转化为时间格式

        dateArray = date.strptime("%Y-%m-%d %H:%M:%S")# 确定时间格式,将时间格式转为为字符串格式time

        total_comfired = json_content['statistics']['confirmedCount']# 获取接口中确诊病例数据

        total_suspected = json_content['statistics']['suspectedCount']# 获取接口中疑是病例数据

        total_cured = json_content['statistics']['curedCount']# 获取接口中治愈病例数据

        total_date = json_content['statistics']['deadCount']# 获取接口中死亡病例数据

        response_str ="""

今日疫情汇报

全国确诊病例累计:%s例

全国疑似病例累计:%s例

全国死亡病例累计:%s例

全国治愈出院病例累计:%s例

更新时间:%s

        """ % (total_comfired, total_suspected, total_cured, total_date, dateArray)# 将信息组合或字符串,将以这种格式发送

        print(response_str)# 返回该字符串

    except:

return '有异常,请查看'

(二)下面是将获取的信息发送给微信好友的代码

import itchat

from apscheduler.schedulers.blockingimport BlockingScheduler

from yiqing_spiderimport yiqing_date

def send_news():

myFirend = itchat.search_friends(name=u"卢华")# 在微信好友列表中搜索呢称为"卢华"的用户

    message = yiqing_date()# 获取疫情实时情况信息发送给该用户名

# print(message)

    name = myFirend[0]["UserName"]# 获取昵称为"卢华"用户的微信用户名

    itchat.send(message,toUserName=name)#将疫情实时情况信息发送给该用户

if __name__ =='__main__':

itchat.auto_login(hotReload=True)#登陆微信,登陆时它会将提示的二维码,hotReload参数表示保持微信登陆

    scheduler = BlockingScheduler()#实例化调度器

    scheduler.add_job(send_news, 'interval', seconds=3600)#添加调度任务,并将调度模式设置时间格式,每一个小时发送一次

    scheduler.start()# 调度器工作开始

(二).在python中我们需要下载的模块分别为:itchat,apscheduler,requests 通过命令pip install xxx 模块名就可以了

itchat:微信的第三方库

apscheduler:设定定时任务的第三方库

requests :接口测试第三方库

(三)代码分析

通过requests库请求疫情实时数据接口,获取接口数据,对接口数据进行json解析,获取更新时间并转换时间格式,获取我们所想获得的数据,对数据进行字符串拼接,并返回该字符串,目前只获取了全国确诊病例、疑似病例、死亡病例、治愈病例和更新时间这几个字段,当然接口中还有很多其他的信息同样可以很简便的获取,如较昨日所增加的病例,如某个地区的详细疫情情况等都可以很方便的获取,在这就留给同学们去扩展自己想要关注的疫情内容了,然后通过itchat实现微信登录,然后通过apscheduler实现任务的调度,该任务就是send_news()方法,最后只需要运行py_wechat.py这个文件,就可以轻松的在微信中接受消息啦,比如小编想每隔一小时就给”卢华”通知一次疫情的实时情况,并且这条消息会每个小时都发送一次,而且每次发送的都是最新的消息。

上一篇下一篇

猜你喜欢

热点阅读