Python获取江苏疫情实时数据及爬虫分析
作者:赵卓不凡 发布时间:2022-09-19 02:12:30
目录
1.引言
2.获取目标网站
3.爬取目标网站
4.解析爬取内容
4.1. 解析全国今日总况
4.2. 解析全国各省份疫情情况
4.3. 解析江苏各地级市疫情情况
5.结果可视化
6. 代码
7. 参考
1.引言
最近江苏南京、湖南张家界陆续爆发疫情,目前已波及8省22市,全国共有2个高风险地区,52个中风险地区。身在南京,作为兢兢业业的打工人,默默地成为了“苏打绿”。为了关注疫情状况,今天我们用python来爬一爬疫情的实时数据。
2.获取目标网站
为了使用python来获取疫情数据,我们需要找一个疫情实时追踪数据发布网站,国内比较有名的是腾讯新闻、网易新闻等,这些网站疫情内容都大同小异,主要包括国内疫情、海外疫情,每日新增确诊趋势,疫苗接种情况等,这里我们选用腾讯新闻疫情发布页来进行数据爬取分析。
网站分析:
使用chrome浏览器 打开疫情发布页网址 ,如上图所示
我们按F12 进入开发者模式,按 ctrl+R 刷新页面
在Network下找到 getOnsInfo?name=disease_h5列,获得爬取目标网址
3.爬取目标网站
我们写爬虫爬取网站数据,需要安装request库,安装命令如下:
pip3 install requests
只需要三行代码就可以获取该网页内容,代码如下:
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
req = requests.get(url=url)
content = json.loads(req.text)
打印爬去结果如下:
4.解析爬取内容
上述网站内容我们虽然爬取成功,接下来我们需要对爬取的结果进行解析,从中找出我们感兴趣的部分。
4.1. 解析全国今日总况
相应的解析代码如下:
def get_all_china(content):
tmp_data = content["data"]
area_data = json.loads(tmp_data)["areaTree"]
country = area_data[0]
country_list = []
name = country["name"]
today_confirm = country["today"]["confirm"]
now_confirm = country["total"]["nowConfirm"]
total_confirm = country["total"]["confirm"]
total_heal = country["total"]["heal"]
country_list.append([name, today_confirm, now_confirm, total_confirm, total_heal])
return country_list
打印结果如下:
输出太丑了,这里使用PrettyTable库对输出进行美化,代码如下:
def format_list_prettytable(title,province_list):
table = PrettyTable(title)
for province in province_list:
table.add_row(province)
table.border = True
return table
结果如下:
4.2. 解析全国各省份疫情情况
依次类推,可解析全国各省市疫情情况,代码如下:
def get_all_province(content):
tmp_data = content["data"]
area_data = json.loads(tmp_data)["areaTree"]
data = area_data[0]['children']
province_list = []
for province in data:
name = province["name"]
today_confirm = province["today"]["confirm"]
now_confirm = province["total"]["nowConfirm"]
total_confirm = province["total"]["confirm"]
total_heal = province["total"]["heal"]
province_list.append([name, today_confirm, now_confirm, total_confirm, total_heal])
return province_list
结果如下:
4.3. 解析江苏各地级市疫情情况
最后,我们获取江苏省各地级市的疫情数据,代码如下:
def parse_jiangsu_province(content,key_province):
tmp_data = content["data"]
area_data = json.loads(tmp_data)["areaTree"]
data = area_data[0]['children']
city_list = []
for province in data:
name = province["name"]
if name == key_province:
children_list = province["children"]
for children in children_list:
city = children["name"]
today_new = children["today"]["confirm"]
now_confirm = children["total"]["nowConfirm"]
total_confirm = children["total"]["confirm"]
total_heal = children["total"]["heal"]
city_list.append([city, today_new, now_confirm, total_confirm, total_heal])
return city_list
结果如下:
5.结果可视化
使用matplotlib对上述爬去的江苏各地级市疫情分布可视化,得到结果如下:
今日新增可视化结果如下:
现有确诊可视化结果如下:
从上述图表可以看出,今日疫情已扩散至扬州,扬州今日新增感染人数最多,需引起重视。
6. 代码
完整代码
https://github.com/sgzqc/wechat/tree/main/20210731
7. 参考
链接一
来源:https://blog.csdn.net/sgzqc/article/details/119278703
猜你喜欢
- 关于matplotlib如何设置图例的位置?如何将图例放在图外?以及如何在一幅图有多个子图的情况下,删除重复的图例?我用一个简单的例子说明一
- Web 设计离不开调色板,现成的调色板多不胜数,不管是 Windows 标准色板,还是 Web 标准色板,还是 Pantone 色板,它们虽
- 这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。1 如何打印更易读的类不推荐方式class Poin
- 八月的UCDChina书友会主题是“信息分类和方法”,在会场中的内容是不足以简单的概述的,而这次交流至少对于分类、属性、关键词与Tag的定义
- 由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新import xlwtimport codecsdef Txt_to_Ex
- python菜鸟,每天都要进步一点点。二维元组的例子:A = ((1, 1, 1), (1, 1, 1),(1, 1, 1),(0, 0,
- 【摘 要】 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多
- 最近看ECShop到网上找资料,发现好多说明ECShop的文件结构不全面,于是想自己弄个出来。但这是个无聊耗时的工作,自己就写了个Pytho
- const 常量 1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5.一个常量是属于一个类的,
- WebSocket的作用WebSock其实在平常使用,我们是时常见到的,用于实时通讯,例如我们常用的实时聊天、服务端向客户端消息推送、也可以
- 第一种,也是我最常用的,第一帧里加上这个比较灵活,想要自定义加入菜单,只要定义drMenu这个对象就可以了var drMenu&n
- 本文实例讲述了Python简单获取网卡名称及其IP地址的方法。分享给大家供大家参考,具体如下:windows上想知道网卡和IP地址,可以使用
- 本文实例为大家分享了python基于socket实现端口扫描的具体代码,供大家参考,具体内容如下自学Python一段时间,写个端口扫描器练练
- 本文深入分析了Python面向对象程序设计OOP。分享给大家供大家参考,具体如下:下面是一个关于OOP的实例,模块文件为person.py#
- 方法一:def commaSpiltList(self, listData): listData = list(listData) strs
- 这里有一些很棒的自动化脚本,你可以在你的 Python 项目中使用它们。在做项目的时候,我们需要一些现成的代码来帮助我们解决日常生活中的问题
- 1. Python字典的clear()方法(删除字典内所有元素)#!/usr/bin/python# -*- coding: UTF-8 -
- 目录1. 配置Python环境变量2. 安装Python编辑器,并在其中配置Python3. 安装控制包uiautomator2,和其它辅助
- 在程序实际应用中,少不了要进行字符串拼接的操作。下面介绍一下Python语言中四种字符串拼接的方式。1. 算术运算符拼接在Python中算术
- 在document.form1.submit();后加document.body.innerHtml = "W