Python疫情数据获取与可视化展示

本文介绍如何使用Python从腾讯新闻获取国内外疫情数据,并利用pyecharts和matplotlib进行数据可视化,包括绘制地图和方寸图等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Python获取数据,并使用pyecharts可视化,绘制国内、国际日增长人数地图,matplotlib绘制方寸图。同时代码是在notebook中完成,

随笔记录所的所学,此博客为我记录文章所用,发布到此,仅供网友阅读参考。作者:北山啦

写在前面:这个已经不是什么新鲜的话题了,所以请大佬勿喷

我服了,这个CSDN,由于网页变化,爬取代码报错,修改后,就G了。为了能发出来,我要修改一些keywords,分成两个部分来发布

导入相关模块

import time
import json
import requests
from datetime import datetime
import pandas as pd
import numpy as np

1. 疫情数据的获得

通过Tencent 新闻发布的网页进行获得

对于静态网页,我们只需要把网页地址栏中的url传到get请求中就可以轻松地获取到网页的数据。 对于动态网页抓取的关键是先分析网页数据获取和跳转的逻辑,再去写代码 。

右击检查,选择Network,Ctrl+R即可

记得安装快速第三方库

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
# 定义抓取数据函数
def Domestic():
    url = 'https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=statisGradeCityDetail,diseaseh5Shelf'
    response = requests.get(url=url).text
    data = json.loads(response)['data']['diseaseh5Shelf']
    return data


def Oversea():
    url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_foreign'
    reponse = requests.get(url=url).json()
    data = json.loads(reponse['data'])
    return data


domestic = Domestic()
oversea = Oversea()

print(domestic.keys())
print(oversea.keys())

2. 初步分析

提取各地区数据明细

# 提取各地区数据明细
areaTree = domestic['areaTree']
# 查看并分析具体数据
areaTree

提取国外地区数据明细

# 提取国外地区数据明细
foreignList = oversea['foreignList']
# 查看并分析具体数据
foreignList

就可以看到在json数据存储的结构了

3. 数据处理

3.1 国内各省疫情数据提取

# Adresss:https://beishan.blog.csdn.net/
china_data = areaTree[0]['children'] 
china_list = []
for a in range(len(china_data)):
    province = china_data[a]['name']  
    confirm = china_data[a]['total']['confirm'] 
    heal = china_data[a]['total']['heal']  
    dead = china_data[a]['total']['dead']  
    nowConfirm = confirm - heal - dead 
    china_dict = {} 
    china_dict['province'] = province  
    china_dict['nowConfirm'] = nowConfirm 
    china_list.append(china_dict) 

china_data = pd.DataFrame(china_list) 
china_data.to_excel("国内疫情.xlsx", index=False) #存储为EXCEL文件
china_data.head()
provincenowConfirm
0香港323
1上海40
2四川34
3台湾30
4广东29

3.2 国际疫情数据提取

world_data = foreignList  
world_list = []  

for a in range(len(world_data)):
    # 提取数据
    country = world_data[a]['name']
    nowConfirm = world_data[a]['nowConfirm']  
    confirm = world_data[a]['confirm']
    dead = world_data[a]['dead']  
    heal = world_data[a]['heal'] 
    # 存放数据
    world_dict = {}
    world_dict['country'] = country
    world_dict['nowConfirm'] = nowConfirm
    world_dict['confirm'] = confirm
    world_dict['dead'] = dead
    world_dict['heal'] = heal
    world_list.append(world_dict)

world_data = pd.DataFrame(world_list)
world_data.to_excel("国外疫情.xlsx", index=False)
world_data.head()
countrynowConfirmconfirmdeadheal
0美国72826113035888055247022523799
1西班牙1939763212332729102945446
2法国2166003240525557671181581
3秘鲁11194042218319408290835
4英国9001110414513759375
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北山啦

这个功能还没人试过呢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值