2019年新冠疫情的突然来袭,让我们感觉到病毒的可怕,因此在此基础上做一个可以实时数据抓取+数据可视化的python程序查看新冠病毒的病死率 代码如下:
import json #数据类型转换
import requests #对网站发送请求
import jsonpath
from pyecharts.charts import Map #地图绘制, pyecharts: 动态图
from pyecharts import options as opts #基本配置项 长度宽度
from map import nameMap
'''1、实时抓取数据 提取国家的名字+数量 接口:'''
url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist' #网站接口
resp = requests.post(url).text #post请求方式,text:获取源代码
#print(resp) #源代码 字符串
#print(type(resp))
#string字符串------dict字典 数据类型转换,因为字典具有极快的查找速度
data = json.loads(resp)
#print(type(data))
#print(data)
#从网页源代码提取数据,name名字+confirm病死率 提取:bs4 lxml pyquery re .....
name = jsonpath.jsonpath(data,"$..name") #$代表最外层的字典{}, ..name匹配的数据
print(name)
confirm = jsonpath.jsonpath(data,"$..confirm")
print(confirm)
a = list(zip(name,confirm)) #zip把两组数据进行拆分结合
print(a)
#2、数据可视化展示 地图绘制
map_ = Map(opts.InitOpts(width='1200px',height='600px')).add(series_name='世界各国新冠疫情的病死率',
data_pair=a,
maptype="world",
name_map=nameMap,
is_map_symbol_show=False
)
#不显示国家名称
map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
#颜色 左上角的名称 图例
map_.set_global_opts(title_opts=opts.TitleOpts(title="国内外疫情情况"),
visualmap_opts=opts.VisualMapOpts(max_=40000000,is_piecewise=True)
)
map_.render('世界各国新冠疫情的情况.html')
运行结果: 想要完整的代码私信我。
|