美文网首页
python采集最新疫情数据+数据分析可视化地图(赠送源码)

python采集最新疫情数据+数据分析可视化地图(赠送源码)

作者: 颜狗一只 | 来源:发表于2022-05-19 16:21 被阅读0次

一、前言

嗨喽,大家好呀,这里是魔王~

疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。

最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。

话不多说,我们直接先来一波效果展示

二、效果

获取到的数据咱们保存到表格

可视化地图

颜色是跟网上的一样,可以跟随鼠标移动变色,展示数据的。



还可以实现这种更好看的

柱状图


效果看过了,现在我们来准备实现它叭~

三、准备工作

涉及知识点

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

开发环境

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

实现流程

  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 保存数据
  5. 可视化分析

前四步的话,基本大部分*虫都是如此。

四、代码展示

又到了紧张刺激的环节了,嘿嘿~

获取数据部分

import requests     # 发送请求 第三方模块 额外安装吧
import re           # 内置模块 无需安装
import json
import csv

# 伪装 字典
headers = {
    # 浏览器基本信息
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
}
with open('data.csv', mode='a', encoding='utf-8', newline='') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(['area', 'curConfirm', 'curConfirmRelative', 'confirmed', 'crued', 'died'])
url = 'https://voice.这里加上我国网民最常用的那个网站地址/act/newpneumonia/newpneumonia/?from=osari_aladin_banner'
# 1. 发送请求
# x=1,y=2
response = requests.get(url=url, headers=headers)
# 2. 获取数据
# <Response [200]>: 访问成功
html_data = response.text
# print(html_data)
# 3. 解析数据 正则
# a. 告诉他 我们要怎么查找 "component":\[(.*?)\]
# b. 我们在哪里查找
源码、解答、资料、教程可加🐧:261823976免费获取~
# 正则会把所有能匹配到的数据都会给到我们
# (.*?)
# .*匹配任意字符 0次或者多次
# ? 非贪婪匹配符
json_str = re.findall('"component":\[(.*)\],', html_data)[0]
# 类型 转化一下 字典
json_dict = json.loads(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)
    with open('data.csv', mode='a', encoding='utf-8', newline='') as f:
        csv_writer = csv.writer(f)
        csv_writer.writerow([area, curConfirm, curConfirmRelative, confirmed, crued, died])

可视化部分

import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

df = pd.read_csv('data.csv', encoding='utf-8')
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_inverse=True)
    )
)
china_map.render('demo.html')

这里只有第一种可视化效果,其它的都是ipynb 格式的,我懒得打开了~

尾语

成功没有快车道,幸福没有高速路。

所有的成功,都来自不倦地努力和奔跑,所有的幸福都来自平凡的奋斗和坚持

——励志语录

本文章就写完啦~感兴趣的小伙伴可以复制代码去试试

你们的支持是我最大的动力!!记得三连哦~ 💕 欢迎大家阅读往期的文章呀

相关文章

网友评论

      本文标题:python采集最新疫情数据+数据分析可视化地图(赠送源码)

      本文链接:https://www.haomeiwen.com/subject/ncmtprtx.html