python疫情数据统计描述_疫情数据统计

疫情数据统计

武汉疫情牵动着全国人名的心,每天都关注着疫情的发展,有时候去关注做了很多的无用功,于是想着偷偷懒,只要疫情发生变化,微信将会受到消息

文章目录

疫情数据统计

1.抓取腾讯疫情地图数据

1.1 F12观察网页特点

1.1.1 腾讯的疫情地图url=https://news.qq.com/zt2020/page/feiyan.htm

1.1.2 F12查看google网页请求以及应答

1.1.3 使用Search筛选数据包

1.1.4 分析请求url以及response

1.1.5使用[json数据解析网址](https://www.json.cn/)

1.2 模拟浏览器请求

2.提取关注的信息

2.1 遇到的问题

2.2 提取全国、湖南省等疫情信息

3.使用server酱接收微信消息

3.1 推荐一款好用的[微信提醒工具](http://sc.ftqq.com/3.version)

3.2 使用server酱服务效果图

4.阿里云服务器部署py脚本

4.1 阿里云服务器运行

5.源码分享

1.抓取腾讯疫情地图数据

1.1 F12观察网页特点

1.1.1 腾讯的疫情地图url=https://news.qq.com/zt2020/page/feiyan.htm

1.1.2 F12查看google网页请求以及应答

1.1.3 使用Search筛选数据包

这样能快速的找到需要的数据请求的信息,能够快速定位数据

1.1.4 分析请求url以及response

写代码时因为惯性思维,看到这个url以为这个将是post请求,最后请求的数据并不是完全的json格式,数据提取的时候纠结了返回的数据很久。。。

URL=https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5

1.1.5使用json数据解析网址

1.2 模拟浏览器请求

2.提取关注的信息

2.1 遇到的问题

(1)使用post方法获得的数据一直带着如下图字符串,在这儿纠结了很久。。。晕死

结果是自己请求方法搞错了。

(2)应答的数据虽然是json格式,但并没有按照常规出牌,尽然是一维的,在这耽误了很久,之前没注意,一直试着常规的方法访问字典,再仔细看看下面数据中的引号(“”),真的是柳暗花明又一村

(3)访问了data的值之后数据是str类型,不过文本内容任然是字典的格式,于是使用函数将文本转化成字典格式

2.2 提取全国、湖南省等疫情信息

由于返回的数据是已经排序的数据,因此需要查找需要的数据

for i in range(len(dict_data["areaTree"][0]["children"])):

if dict_data["areaTree"][0]["children"][i]["name"]=="湖南":

for j in range(len(dict_data["areaTree"][0]["children"][i]["children"])):

if dict_data["areaTree"][0]["children"][i]["children"][j]["name"]=="衡阳":

index1=i

index2=j

break

3.使用server酱接收微信消息

3.1 推荐一款好用的微信提醒工具

3.2 使用server酱服务效果图

4.阿里云服务器部署py脚本

4.1 阿里云服务器运行

自己以前都没有接触过Linux,为了补充知识面,买了阿里云的学生特价服务器,想借此练手,于是百度了很多关于py脚本如何在Ubuntu服务器后台运行,Ubuntu初始就装载了python2.7和python3.5版本,这就方便了我们的程序运行。Linux学习进行中~~请多指教

(1)使用Xshell上传py文件

(2)Linux指令后台运行脚本

5.源码分享

import requests

import json

import time

def post_data():

url='https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'

chrome_info={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0'}

re1=requests.get(url,headers=chrome_info)

data1=re1.json()

#print(data1)

data=json.loads(data1["data"])

#print(data)

print("爬取信息")

return data

if __name__=="__main__":

#调用腾讯疫情地图接口API

signal=0

while True:

dict_data=post_data()

for i in range(len(dict_data["areaTree"][0]["children"])):

if dict_data["areaTree"][0]["children"][i]["name"]=="湖南":

for j in range(len(dict_data["areaTree"][0]["children"][i]["children"])):

if dict_data["areaTree"][0]["children"][i]["children"][j]["name"]=="衡阳":

index1=i

index2=j

break

if signal!=dict_data["chinaTotal"]["confirm"]:

url = "https://sc.ftqq.com/SCU62999Td6e569532603a70f16b3fc9955667e085d907316d5ed1.send"

form_data={

'text':dict_data["lastUpdateTime"]+'疫情信息',

'desp':["全国数据\n确诊数%s 待确诊%s 死亡人数%s 治愈人数%s"%(dict_data["chinaTotal"]["confirm"],dict_data["chinaTotal"]["suspect"],dict_data["chinaTotal"]["dead"],dict_data["chinaTotal"]["heal"])+'-------------------------------------------------'+

"湖南省汇总数据\n确诊数%s 待确诊%s 死亡人数%s 治愈人数%s" % (dict_data["areaTree"][0]["children"][index1]["total"]["confirm"],

dict_data["areaTree"][0]["children"][index1]["total"]["suspect"],

dict_data["areaTree"][0]["children"][index1]["total"]["dead"],

dict_data["areaTree"][0]["children"][index1]["total"]["heal"])+'-------------------------------------------------'+

"衡阳总计\n确诊人数%s 待确诊人数%s 死亡人数%s 治愈人数%s"%(dict_data["areaTree"][0]["children"][index1]["children"][j]["total"]["confirm"],dict_data["areaTree"][0]["children"][index1]["children"][j]["total"]["suspect"],dict_data["areaTree"][0]["children"][index1]["children"][j]["total"]["dead"],dict_data["areaTree"][0]["children"][index1]["children"][j]["total"]["heal"])+'-------------------------------------------------'+

"衡阳今日数据\n新增确诊人数%s 新增待确诊人数%s 新增死亡人数%s 新增治愈人数%s" % (

dict_data["areaTree"][0]["children"][index1]["children"][index2]["today"]["confirm"],

dict_data["areaTree"][0]["children"][index1]["children"][index2]["today"]["suspect"],

dict_data["areaTree"][0]["children"][index1]["children"][index2]["today"]["dead"],

dict_data["areaTree"][0]["children"][index1]["children"][index2]["today"]["heal"])

]

}

send = requests.post(url,data=form_data)

print("发送消息成功")

signal = dict_data["chinaTotal"]["confirm"]

time.sleep(60)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值