文章实时采集(【Python爬虫+数据分析】实时采集最新疫情数据,绘制可视化地图分析 )
优采云 发布时间: 2021-12-09 07:14文章实时采集(【Python爬虫+数据分析】实时采集最新疫情数据,绘制可视化地图分析
)
文章内容
一、 写在前面
兄弟们,最近有各种流行病。下班后尽量少去人多的地方。出门记得戴口罩。
所以如果你不出去,在家什么都不做,你只能学到更多的新东西。今天,我就爬取国内的疫情数据,看看国内的疫情情况。最后,让我们将数据可视化并制作可视化地图。
二、准备2.1、开发环境
如果您不知道如何安装软件、模块或其他基本和简单的问题,请参阅此处:Python 入门集合
我还在本文末尾附上了视频教程。文章看不懂,可以看视频。
2.2、知识点爬虫基本流程jsonrequests在爬虫中发送网络请求,pandas表单处理/保存数据pyecharts可视化三、爬虫部分3.1、爬虫过程明确要求
我们在爬什么?
分析数据从何而来#/
使用开发者工具抓包(数据包)分析代码流
①. 发送访问请求网站
②. 获取数据
③. 分析数据
xpath css re json bs4(已过时)
python语言的json字典类型数据{key 1: value 1, key 2: value 2, key 3: value 3}
④. 保存数据3.2、数据采集
导入模块
import time # 时间模块
import json # json包
import requests # 网络请求库 第三方 pip
import pandas as pd # 数据处理 第三库 pip
目标网址
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&_=%d'%int(time.time()*1000)
模拟浏览器发送请求并得到响应
html = requests.get(url)
分析网页并提取数据
# json类型转换
data = json.loads(html.json()['data'])
china_data = data['areaTree'][0]['children']
data_set = []
for i in china_data:
data_dict = {}
# 地区名称
data_dict['province'] = i['name']
# 疫情数据
# 新增确诊
data_dict['nowConfirm'] = i['total']['nowConfirm']
data_dict['confirm'] = i['total']['confirm']
data_dict['dead'] = i['total']['dead']
data_dict['heal'] = i['total']['heal']
data_dict['deadRate'] = i['total']['deadRate']
data_dict['healRate'] = i['total']['healRate']
data_set.append(data_dict)
df = pd.DataFrame(data_set)
df
保存数据
df.to_csv(r'data.csv')
四、数据可视化部分
from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Pie,Map,Grid
df2 = df.sort_values(by=['nowConfirm'],ascending=False)[:9]
df2
[list(i) for i in zip(df2['province'].values.tolist(),df2['nowConfirm'].values.tolist())]
pie = (
Pie()
.add(
"",
[list(i) for i in zip(df2['province'].values.tolist(),df2['nowConfirm'].values.tolist())],
radius = ["10%","30%"]
)
.set_global_opts(
legend_opts=opts.LegendOpts(orient="vertical", pos_top="70%", pos_left="70%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie.render_notebook()
死亡率和治愈率
line = (
Line()
.add_xaxis(list(df['province'].values))
.add_yaxis("治愈率", df['healRate'].values.tolist())
.add_yaxis("死亡率", df['deadRate'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="死亡率与治愈率"),
)
)
line.render_notebook()
各地区确诊及死亡人数
各地区确诊病例数
china_map = (
Map()
.add("现有确诊", [list(i) for i in zip(df['province'].values.tolist(),df['nowConfirm'].values.tolist())], "china")
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区确诊人数"),
visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
)
)
china_map.render('a.html')
五、视频教程
怕是零基础不好。已经为此发布了相关的视频教程。你可以自己看。
【Python爬虫+数据分析】实时采集最新疫情数据,绘制可视化地图分析!
六、写在最后
兄弟们,如果觉得对你有帮助,别忘了给你的脸点个赞,评论,采集,连续四次转发哦~