【2022.11最新】Python疫情数据采集 + 可视化展示
创始人
2024-02-07 10:41:11
0

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

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

闲来无事,用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)
# : 请求成功意思

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(

在这里插入图片描述

今天的文章就到这里啦!

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

相关内容

热门资讯

经典名言录 经典名言录  名言录  1、一寸光阴一寸金,寸金难买寸光阴。——中国谚语  2、浪费别人的时间是谋财...
感恩教师节名言警句 感恩教师节名言警句  在平时的学习、工作或生活中,大家都对那些经典的名言警句很是熟悉吧,在议论文中,...
历史的名言 关于历史的名言大全  1、历史本身是自然史的一个现实的部分,是自然生成为人这一过程的一个现实的部分。...
交通安全名言警句大全   车在轨上行是幸福路,人在轨上走是危险路。如下是中国人才网给大家整理的交通安全名言警句大全,希望对...
朱熹的名言名句 朱熹的名言名句集锦  1、涵养、致和、力行三者,便是以涵养为首,致和次之,力行又次之。  2、心,生...
教师人生格言 教师人生格言大全  创新是人类进步的不竭动力!  当代能做老师的人必定是不平凡的人;因为教育事业本身...
歌颂母爱的名言摘抄 有关歌颂母爱的名言摘抄  在平平淡淡的日常中,大家总免不了要接触或使用名言吧,下面是小编为大家整理的...
毕达哥拉斯名言   毕达哥拉斯名言  1、友谊是一种和谐的平等。  2、要这样生活;使你的朋友不致成为仇人,使你的仇...
伤感的名言 伤感的名言  1.用一转身离开,用一辈子去忘记。  2.明知道天要下雨就该带把伞,明知道不会有结果就...
犯罪心理第七季的励志名言 犯罪心理第七季的励志名言  1.遗伤难愈——伊莉莎白一世  2.若为奇迹,一切证据皆可为之,若为事实...
我的人生格言 我的人生格言我的人生格言如果你的心灵很敞亮,很仁厚,你有一种坦率和勇敢,那么你有可能收获到许多意想不...
蒙田名言   蒙田名言  1、生命的价值不在于时间的长短,而在于你如何利用它。  2、作为一个父亲,最大的乐趣...
中国古代爱情的名言名句 中国古代关于爱情的名言名句(精选115句)  无论是身处学校还是步入社会,许多人都接触或是使用过一些...
人生励志名言 100句人生励志名言精选  1、没有行动的承诺,不过是一席空话。  2、坚持最初的梦想,年轻没有失败...
李嘉诚名言 李嘉诚名言(通用40句)  扩张中不忘谨慎,谨慎中不忘扩张……我讲求的是在稳健与扩张中取得平衡。船要...
目标与理想的名言警句 目标与理想的名言警句  平凡朴实的梦想,我们用那唯一的坚持信念去支撑那梦想,目标与理想的名言警句。以...
张爱玲名人名言 张爱玲名人名言汇总80句精选  人生最可爱就在那一撒手。下面这篇文章是小编收集整理的张爱玲名人名言,...
读书名言 关于读书名言(精选100句)  书是填补精神空虚的方块。以下这篇文章是小编收集整理的读书名言,希望能...
人生经典格言 人生经典格言大全  快乐是一种香水,无法倒在别人身上,而自己却不沾上一些,人生经典格言大全。  牡丹...
企业家的名言 关于企业家的名言  在艰难时期,企业要想获得生存下去的机会,唯一的办法就是保持一种始终面向外界的姿态...