疫情数据爬取展示

程序代码

import time
import json
import requests
from datetime import datetime
import pandas as pd
import numpy as np
#########数据抓取
def catch_cityinfo():
    url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=&_=%d'%int(time.time()*1000)
    city_data = requests.get(url=url).json()['data']
    city_data = json.loads(city_data)
    return city_data
#############
#########数据的提取
citydata=catch_cityinfo()
##更新日期
gx_data=citydata['lastUpdateTime']
##取出所有市新增  累计  治愈  死亡  病死率
citydata=citydata['areaTree'][0]['children']
#各个城市数据
csdata={}
#数据可视化所用数据
dtdata=[]
for char in citydata:
    dtdata.append([char['name'], char['total']['confirm']])
    char=char['children']
    for char1 in char:
        csdata[char1['name']]=[char1['today']['confirm'],char1['total']['confirm'],char1['total']['dead']]
        cs_data=pd.DataFrame.from_dict(csdata,orient='index',columns=['新增人数','累计人数','死亡人数'])
#################
#########数据展示
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType
area_map = Map()
area_map .add("",dtdata, "china",is_map_symbol_show=False)
area_map.set_global_opts(title_opts=opts.TitleOpts(title="Map-疫情地图"),visualmap_opts=opts.VisualMapOpts(max_=3000,is_piecewise=True,
                pieces=[
                 {"min": "0", "max": "10", "label": "0-10", "color": "#FFA07A"},
                 {"min": "10", "max": "100", "label": "10-100", "color": "#FF7F50"},
                 {"min": "100", "max": "1000", "label": "100-1000", "color": "#FF4500"},
                 {"min": "1000", "max": "10000", "label": "1000-10000", "color": "#FF0000"},
                {"min": "10000", "max": "5000000", "label": ">10000", "color": "#B22222"},
             ]))
area_map.render("疫情地图.html")
##############
print("******************************************************************************")
print("                        欢迎使用实时疫情数据查询系统")
print("                                               数据更新时间:"+gx_data)
print("1.查询所有省数据")
print("2.查询所有市数据")
print("3.查询指定市数据")
print("4.查询指定省数据")
print("5.疫情实时热力图")
print("6.退出查询系统")
print("******************************************************************************")
while True:
    xh=int(input("请输入您要选择功能的序号:"))
    if xh==1:
        shuju={}
        for char in dtdata:
            shuju[char[0]]=char[1]
        pd.set_option('display.max_rows', None)
        print(pd.DataFrame.from_dict(shuju,orient="index",columns=["累计人数"]))
    if xh==2:
        pd.set_option('display.max_rows', None)
        print(cs_data)
    if xh==3:
        cs=input("输入指定城市:")
        sfzd=False
        for key in csdata:
            if key==cs:
                print("新增人数:"+str(csdata[key][0]))
                print("累计人数:"+str(csdata[key][1]))
                print("死亡人数:"+str(csdata[key][2]))
                sfzd=True
        if sfzd==False:
            print("请检查输入的市区是否正确")
    if xh==4:
        sf = input("输入指定省份:")
        sfzd=False
        for char in dtdata:
            if(char[0]==sf):
                print("累计人数:"+str(char[1]))
                sfzd=True
        if sfzd==False:
            print("请检查输入的省份是否正确")
    if xh==5:
        print("疫情实时热力图(将地址直接复制到浏览器即可)")
        print("D:\pycharmXM\Test\疫情地图.html")
    if xh==6:
        print("感谢您的使用")
        break
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值