预期效果
1.爬取截至最新时间,中国所有城市累计或者新增确诊、疑似等数据
2.根据弹出的对话框选择想要查询的项目(如累计确诊、新增疑似)前N名城市,生成统计图。
代码实现
--------------------由于网页发生改变,2.17日更新代码----------------
import json
import requests
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import csv
url="https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
resp=requests.get(url)
html=resp.json()
data=json.loads(html["data"])
areaTree=data["areaTree"]
print(f'截至{data["lastUpdateTime"]}共{len(areaTree)}个国家出现确诊,其中中国情况为:')
da=[]
i_city=0
item=input('请输入查询项目英文代码:(新增确诊-today_confirm,累计确诊-total_confirm,累计疑似-total_suspect,累计死亡-total_dead,累计治愈-total_heal,总死亡率-total_deadRate,总治愈率-total_healRate),例如:total_confirm')
N=input('请输入想查询前多少名城市?(300以内正整数,例如:20)')
including=input('是否包含湖北城市?(包含输入1,不包含输入0),例如:0')
for province in areaTree[0]["children"]:
if including=="1":
if province["name"]=="北京" or province["name"]=="上海" or province["name"]== "天津"or province["name"]=="重庆" or province["name"]=="香港" or province["name"]=="澳门" or province["name"]=="台湾":
i_city += 1
da.append([province["name"],province["today"]["confirm"],
# province["today"]["suspect"], province["today"]["dead"], province["today"]["heal"],
province["total"]["confirm"], province["total"]["suspect"], province["total"]["dead"], province["total"]["heal"],province["total"]["deadRate"],province["total"]["healRate"]])
else:
for city in province["children"]:
i_city+=1
# print(city)