一、前言嗨喽,大家好呀,这里是魔王~ 疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。 最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。 话不多说,我们直接先来一波效果展示 二、效果获取到的数据咱们保存到表格![]() 可视化地图颜色是跟网上的一样,可以跟随鼠标移动变色,展示数据的。 ![]() 还可以实现这种更好看的 ![]() 柱状图![]() 效果看过了,现在我们来准备实现它叭~ 三、准备工作涉及知识点
开发环境
实现流程
前四步的话,基本大部分*虫都是如此。 四、代码展示又到了紧张刺激的环节了,嘿嘿~ 获取数据部分import requests # 发送请求 第三方模块 额外安装吧import re # 内置模块 无需安装import jsonimport 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=2response = 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]) 可视化部分
这里只有第一种可视化效果,其它的都是ipynb 格式的,我懒得打开了~ 尾语成功没有快车道,幸福没有高速路。 所有的成功,都来自不倦地努力和奔跑,所有的幸福都来自平凡的奋斗和坚持 ——励志语录 本文章就写完啦~感兴趣的小伙伴可以复制代码去试试 |
|