重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了Python如何绘制全球疫情变化地图,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
创新互联专注于企业营销型网站建设、网站重做改版、岚县网站定制设计、自适应品牌网站建设、H5建站、商城开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为岚县等各大城市提供网站开发制作服务。目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图。 废话不多说,先上图
下面就来重点介绍下上面这张图的绘制过程,主要分为以下三个步骤:
下面一个一个来说。
数据收集
这是万里长城的第一步,俗话说“巧妇难为无米之炊”,既然是变化图,当然需要每个国家、每天的现有确诊病例数。好在现在各大网站都有疫情相关的专题页,我们可以直接抓数据。以网易为例
我们选择 XHR,重新刷新下网页可以看到有几个接口,其中 list-total 接口是获取当前所有有疫情的国家,以及对应的国家id。另外,我们看到还有一个 list-by-area-code 接口,它是获取每个国家历史上每天的疫情数据,请求这个接口需要带 areaCode 参数,这个参数就是我们刚刚说的国家id。所以对我们来说这两个接口是最重要的。下面我们就看看请求 list-total 接口的代码
def get_and_save_all_countries(): """ 获取所有的国家名以及对应的id,保存为文件 """ url = 'https://c.m.163.com/ug/api/wuhan/app/data/list-total?t=317452696323' list_total_req = requests.get(url, headers=headers) if list_total_req.status_code == 200: area_tree = list_total_req.json()['data']['areaTree'] area_dict = {} for area in area_tree: country_id = area['id'] name = area['name'] area_dict[country_id] = name area_json = json.dumps(area_dict, ensure_ascii=False) # ensure_ascii=False 防止json编码后中文编程\u开头的字符 write_file('./config/countries_id2name.json', area_json)