【2022.11最新】Python疫情数据采集 + 可视化展示

news2025/1/23 0:57:01

嗨害大家好鸭!我是小熊猫

最近我又又又在家里居家办公了

闲来无事,用python采集一下 再做个可视化

康康现在疫情如何

源码、资料素材电子书点击这里

在这里插入图片描述

知识点:

1. 爬虫基本流程
2. requests 发送请求
3. re 正则表达式
4. json 结构化数据解析
5. pyecharts 可视化

开发环境:

  • python 3.8: 解释器
  • pycharm: 代码编辑器

在这里插入图片描述

爬虫流程:

一. 明确需求 (爬虫 + 数据分析)

采集 确诊人数 新增人数 数据所在位置:
地址

在这里插入图片描述

二. 代码流程 爬虫四大步骤

  1. 发送请求 地址

  2. 获取数据 网页源代码

  3. 解析数据 筛选一些我想用的数据

  4. 保存数据 保存成表格

  5. 做数据可视化分析

代码编写

导入模块

import requests     # 额外安装: 第三方模块
import re           # 内置模块
import csv
with open('data.csv', mode='a', newline='') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(['area', 'curConfirm', 'curConfirmRelative', 'confirmed', 'crued', 'died'])
url = 'https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_aladin_banner'

1. 发送请求

response = requests.get(url)
# <Response [200]>: 请求成功意思

2. 获取数据 网页源代码

html_data = response.text

3. 解析数据

json_str = re.findall('"component":\[(.*)\],', html_data)[0]     # 字符串
# 字典类型取值, 转类型
json_dict = eval(json_str)
caseList = json_dict['caseList']
for case in caseList:
    area = case['area']                                 # 城市
    curConfirm = case['curConfirm']                     # 当前确诊
    curConfirmRelative = case['curConfirmRelative']     # 新增人数
    confirmed = case['confirmed']                       # 累计确诊
    crued = case['crued']                               # 治愈人数
    died = case['died']                                 # 死亡人数
    print(area, curConfirm, curConfirmRelative, confirmed, crued, died)

4. 保存数据

    # 乱码 encoding="utf-8" / encoding="gbk"
    with open('data.csv', mode='a', newline='') as f:
        csv_writer = csv.writer(f)
        csv_writer.writerow([area, curConfirm, curConfirmRelative, confirmed, crued, died])

在这里插入图片描述


疫情数据可视化

源码、资料素材电子书点击这里

各地区确诊人数

china_map = (
    Map()
    .add("现有确诊", [list(i) for i in zip(df['area'].values.tolist(),df['curConfirm'].values.tolist())], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各地区确诊人数"),
        visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
    )
)
china_map.render_notebook()

新型冠状病毒全国疫情地图

cofirm, currentCofirm, cured, dead = [], [], [], []

tab = Tab()

_map = (
    Map(init_opts=opts.InitOpts(theme='dark', width='1000px'))
    .add("累计确诊人数", [list(i) for i in zip(df['area'].values.tolist(),df['confirmed'].values.tolist())], "china", is_map_symbol_show=False,  is_roam=False)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图",
                                  ),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=1000,
                                          is_piecewise=False,
                                          range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000'])
    )
)
tab.add(_map, '累计确诊')

_map = (
    Map(init_opts=opts.InitOpts(theme='dark', width='1000px'))
    .add("当前确诊人数", [list(i) for i in zip(df['area'].values.tolist(),df['curConfirm'].values.tolist())], "china", is_map_symbol_show=False,  is_roam=False)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图",
                                  ),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=100,
                                          is_piecewise=False,
                                          range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000'])
    )
)
tab.add(_map, '当前确诊')

_map = (
    Map(init_opts=opts.InitOpts(theme='dark', width='1000px'))
    .add("治愈人数", [list(i) for i in zip(df['area'].values.tolist(),df['crued'].values.tolist())], "china", is_map_symbol_show=False,  is_roam=False)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图",
                                  ),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=1000,
                                          is_piecewise=False,
                                          range_color=['#FFFFE0', 'green'])
    )
)
tab.add(_map, '治愈')

_map = (
    Map(init_opts=opts.InitOpts(theme='dark', width='1000px'))
    .add("死亡人数", [list(i) for i in zip(df['area'].values.tolist(),df['died'].values.tolist())], "china", is_map_symbol_show=False,  is_roam=False)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图",
                                  ),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=50,
                                          is_piecewise=False,
                                          range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000'])
    )
)
tab.add(_map, '死亡')

tab.render_notebook()

各地区确诊人数与死亡人数情况

bar = (
    Bar()
    .add_xaxis(list(df['area'].values)[:6])
    .add_yaxis("死亡", df['died'].values.tolist()[:6])
    .add_yaxis("治愈", df['crued'].values.tolist()[:6])
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各地区确诊人数与死亡人数情况"),
        datazoom_opts=[opts.DataZoomOpts()],
        )
)
bar.render_notebook(

在这里插入图片描述

今天的文章就到这里啦!

我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】CycleGAN开源项目学习笔记 | 完整流程 | 报错总结 | pytorch

文章目录前言一、下载项目&#xff0c;文件结构观察二、数据集下载三、训练3.1、训练初体验3.2、命令行输入参数3.3、继续训练命令四、预测4.1、使用自己训练完的权重文件进行预测4.2、使用网上的预训练文件进行预测前言 你敢想象&#xff0c;就是这么一个简单的开源网站&…

南卡电容笔和绿联哪款更好用?性价比高的电容笔推荐

随着生活节奏逐渐加快&#xff0c;从而Apple Pencil的出现引来了不少热度&#xff0c;不过Apple Pencil由于价格昂贵&#xff0c;让不少用户望而止步。然而现在出现了平替电容笔&#xff0c;而且品牌众多&#xff0c;有很多百元左右的平替电容笔&#xff0c;性能和配置都做的不…

适合运动的耳机有哪些?六款相当不错的运动耳机分享

户外运动是现代青年最常见的一种生活方式&#xff0c;无论是在公交地铁上&#xff0c;还是晚上散步的公园里&#xff0c;都能看到很多人在运动&#xff0c;然而他们在做运动的时候都会佩戴上一款运动耳机&#xff0c;音乐能够让我们沉醉于运动中。也越来越多人会问&#xff0c;…

一款可以阻止网络钓鱼诈骗的解决方案?

“你继承了一笔财富。要转账&#xff0c;我需要你的银行账户凭证。” 你是否也遇见过此类的电话诈骗话术。 根据2022年数据泄露调查报告&#xff0c;25%的数据泄露涉及网络钓鱼。 这是怎么发生的&#xff1f;参与网络钓鱼的欺诈者一般都是心理方面的高手。他们知道如何营造紧…

蓄电池电压检测单元 电池监控模块 24路电池电压采样模块电源检测

24路巡检单元的主要功能是对串联蓄电池组的单电池电压进行实时在线巡回检测&#xff0c;并智能分析电池的使用状况&#xff0c;根据用户设置不同的上下限、平均偏差自动判断并输出告警。本电池巡检单元主要应用于发电厂、变电站或其它行业中的直流电源、UPS电源的蓄电池组的电压…

载紫杉醇D-α-生育酚聚乙二醇1000琥珀酸酯/纳米粒包裹紫杉醇的肝素纳米粒

下面整理了载紫杉醇D-α-生育酚聚乙二醇1000琥珀酸酯/纳米粒包裹紫杉醇的肝素纳米粒&#xff0c;一起看&#xff01; 包裹紫杉醇的肝素纳米粒制备方法&#xff1a; 以肝素为原料制备生物素化包裹紫杉醇的肝素纳米粒,动态光散射仪测定其粒径及电位,透射电镜观察其形态,紫外分光…

cuda 编程:矩阵运算讲解

本文主要介绍用CUDA实现矩阵运算(C A x B)的几个基本方法&#xff0c;帮助大家理解矩阵在GPU上面的运算与CPU上的有何异同&#xff0c;通过实践上手CUDA的优化计算&#xff0c;相比基础方法&#xff0c;能提速10倍以上。 本文内容涉及到CUDA矩阵1D运算,2D运算,共享内存,CUBLAS…

808. 分汤 : 挺有意思的 DP 题

题目描述 这是 LeetCode 上的 808. 分汤 &#xff0c;难度为 中等。 Tag : 「数学」、「动态规划」、「线性 DP」 有 A 和 B 两种类型 的汤。一开始每种类型的汤有 n 毫升。有四种分配操作&#xff1a; 提供 100ml 的 汤A 和 0ml 的 汤B 。提供 75ml 的 汤A 和 25ml 的 汤B…

还在用Python爬壁纸网站?不如来试试搜索引擎的图片库

前言 嗨嗨&#xff0c;又来给你们带来爬美女照片的文章了 今天就不去搞什么壁纸网站了&#xff0c;之前也发了蛮多了 今天搞点不一样的&#xff0c;来试试搜索引擎的图片库 话不多说&#xff0c;直接用Python来开发一下此处资源&#xff01; 开发环境 & 第三方模块 环…

k3s安装

文章目录1. 文件准备2. 安装3. 查看4. rancher接入官方文档https://docs.rancher.cn/docs/k3s/installation/airgap/_index/1. 文件准备 从&#xff1a; https://github.com/k3s-io/k3s/releases 下载如下两个文件 二进制文件: k3s 文件镜像包&#xff1a;k3s-airgap-images-…

route -n 路由详情

添加网段路由,想要只显示U route add -net 192.168.1.0 netmask 255.255.255.0 dev ens192 [rootht23 k8snode]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192 表示192.168.1.…

修改ZABBIX的logo,最终版方法,简单好用,适用于所有ZABBIX版本,一学即会!!!!!

前言&#xff1a;大家好&#xff0c;我是菜鸟阿贵&#xff0c;好久不见&#xff0c;最近我发现一款很不错的开源网络监控软件&#xff0c;他的优点就不说了&#xff0c;但是遇到一个问题&#xff0c;我们项目上需要用它集成&#xff0c;所以上面的ZABBIX的标志不好看&#xff0…

【记录】前端如何实现iPhone不上架AppStore,从游览器直接安装测试App

背景&#xff1a; 都知道 iPhone 苹果手机应用只能通过 AppStore 进行安装&#xff0c;测试包只能通过官方提供的 TestFlight 等工具安装&#xff0c;而且通常有较长的审核流程&#xff0c;无法及时更新安装包&#xff0c;非常不方便。本文主要介绍前端实现对签名成功的 App直…

maven了解

maven是基于java平台的项目构建&#xff0c;依赖管理和项目信息管理的一个工具。 maven能为我们解决什么问题&#xff1f; ①添加第三方jar包 按照最原始的做法&#xff0c;我们是手动复制jar包到项目WEB-INF/lib下&#xff0c;每个项目都会有一份&#xff0c;造成大量重复文…

红外平行光管ZEMAX光学设计/SOLIDWORKS

平行光管是无穷远目标模拟器&#xff0c;它是一种高精度、综合型光学检测基础设备。由于反射系统受材料限制较小&#xff0c;便于轻量化设计&#xff0c;完全没有色差&#xff0c;系统透过率高;离轴系统不存在中心遮拦且焦点被引到主反射镜之外&#xff0c;光路可折叠&#xff…

Angular 服务端渲染 Angular Universal 实例

标准的 Angular 应用运行在浏览器中&#xff0c;它会在 DOM 中渲染页面&#xff0c;以响应用户的操作。 而Angular Universal 会在服务端运行&#xff0c;生成一些静态的应用页面&#xff0c;稍后再通过客户端进行启动。 这意味着该应用的渲染通常会更快&#xff0c;让用户可以…

一条SQL语句执行的顺序

1. 查询语句 1.1 总体流程 大体来说&#xff0c;MySQL可以分为Server层和存储引擎层两部分。 Server层包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖MySQL的大多数核心服务 功能&#xff0c;以及所有的内置函数(如日期、时间、数学和加密函数等)&#xff0…

一篇文章教你如何用Telerik组件为桌面应用添加上下文菜单

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供最完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序。 Telerik DevCraft R3 2022正式版下载 上下…

变化检测(Change Detection,CD) 综述2篇 CD代码 常用CD数据集及链接

变化检测综述 综述1&#xff1a;Change Detection Based on Artificial Intelligence: State-of-the-Art and Challenges 收录于&#xff1a;Remote Sens. 2020 论文地址&#xff1a;Remote Sensing | Free Full-Text | Change Detection Based on Artificial Intelligence:…

客快物流大数据项目(八十七):ClickHouse的使用案例

文章目录 ClickHouse的使用案例 一、电信行业用于存储数据和统计数据使用