当下,新型冠状病毒感染的肺炎疫情无时无刻不牵动着人们的心。面对来势汹汹的疫情,除了奋战在前线的医护人员以及防疫建设工作者们,小媛们也想尽一份绵薄之力。

这不,今天为大家带来了一份超超超简单的!生成自己的疫情地图的方法,各位想要动手的小可爱可以操练起来啦!
01、爬取丁香园实时统计数据**

我们要爬取的是丁香园大佬的公开统计数据,这才让我们的疫情地图生成有了可能。咳咳,数据才是王道。

import json
import re
import requests
import datetimetoday = datetime.date.today().strftime('%Y%m%d')   #20200315def crawl_dxy_data():"""爬取丁香园实时统计数据,保存到data目录下,以当前日期作为文件名,存JSON文件"""response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia') #request.get()用于请求目标网站print(response.status_code)                                          # 打印状态码try:url_text = response.content.decode()                             #更推荐使用response.content.deocde()的方式获取响应的html页面#print(url_text)url_content = re.search(r'window.getAreaStat = (.*?)}]}catch',   #re.search():扫描字符串以查找正则表达式模式产生匹配项的第一个位置 ,然后返回相应的match对象。url_text, re.S)                          #在字符串a中,包含换行符\n,在这种情况下:如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始;#而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。texts = url_content.group()                                      #获取匹配正则表达式的整体结果content = texts.replace('window.getAreaStat = ', '').replace('}catch', '') #去除多余的字符json_data = json.loads(content)                                         with open('data/' + today + '.json', 'w', encoding='UTF-8') as f:json.dump(json_data, f, ensure_ascii=False)except:print('<Response [%s]>' % response.status_code)if __name__ == '__main__':crawl_dxy_data()

当 print(response.status_code) 输出200即为成功状态。
从以上代码我们可以看到,我们会生成一个 data/’ + today + '.json 的文件,这样我们就轻松爬取到今日的疫情数据啦:data/20200331.json
02、安装可视化工具库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

03、绘制疫情饼状图

import json
import datetime
from pyecharts.charts import Pie
from pyecharts import options as opts# 读原始数据文件
today = datetime.date.today().strftime('%Y%m%d')   #20200331
datafile = 'data/'+ today + '.json'
with open(datafile, 'r', encoding='UTF-8') as file:json_array = json.loads(file.read())# 分析全国实时确诊数据
china_data = []
for province in json_array:china_data.append((province['provinceShortName'], province['confirmedCount']))
china_data = sorted(china_data, key=lambda x: x[1], reverse=True)                 #reverse=True,表示降序,反之升序print(china_data)labels = [data[0] for data in china_data]
counts = [data[1] for data in china_data]c = (Pie().add("累计确诊", [list(z) for z in zip(labels, counts)]).set_global_opts(title_opts=opts.TitleOpts(title="3月31日疫情分布图"),legend_opts=opts.LegendOpts(orient="vertical")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).render("3月31日疫情分布图.html")
)

然后该代码会为我们生成一个文件:3月31日疫情分布图.html
一个简单的今日疫情饼状图就生成啦
以上的代码可以根据自己的喜好进行相应更改哦
04、绘制疫情地图

import json
import datetime
from pyecharts.charts import Map
from pyecharts import options as opts# 读原始数据文件
today = datetime.date.today().strftime('%Y%m%d')   #20200315
datafile = 'data/'+ today + '.json'
with open(datafile, 'r', encoding='UTF-8') as file:json_array = json.loads(file.read())# 分析全国实时确诊数据:'confirmedCount'字段
china_data = []
for province in json_array:china_data.append((province['provinceShortName'], province['confirmedCount']))
china_data = sorted(china_data, key=lambda x: x[1], reverse=True)                 #reverse=True,表示降序,反之升序print(china_data)
# 全国疫情地图
# 自定义的每一段的范围,以及每一段的特别的样式。
pieces = [{'min': 10000, 'color': '#540d0d'},{'max': 9999, 'min': 1000, 'color': '#9c1414'},{'max': 999, 'min': 500, 'color': '#d92727'},{'max': 499, 'min': 100, 'color': '#ed3232'},{'max': 99, 'min': 10, 'color': '#f27777'},{'max': 9, 'min': 1, 'color': '#f7adad'},{'max': 0, 'color': '#f7e4e4'},
]
labels = [data[0] for data in china_data]
counts = [data[1] for data in china_data]m = Map()
m.add("累计确诊", [list(z) for z in zip(labels, counts)], 'china')#系列配置项,可配置图元样式、文字样式、标签样式、点线样式等
m.set_series_opts(label_opts=opts.LabelOpts(font_size=12),is_show=False)
#全局配置项,可配置标题、动画、坐标轴、图例等
m.set_global_opts(title_opts=opts.TitleOpts(title='全国实时确诊数据',subtitle='数据来源:丁香园'),legend_opts=opts.LegendOpts(is_show=False),visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True,   #是否为分段型is_show=True))       #是否显示视觉映射配置
#render()会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件,也可以传入路径参数,如 m.render("mycharts.html")
m.render(path='全国实时确诊数据.html')

怎么样
今天的内容
是不是
超令人激动
快来领取你自己的疫情地图吧!

利用paddlepaddle爬取丁香园实时统计数据,并生成疫情地图!!相关推荐

  1. python爬取电脑本地数据_利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息...

    原标题:利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息 新型肺炎肆虐全国,可以预知,最近一两年地理学中会有一部分论文研究新型肺炎的空间分布及与其他指标的关联分析.获取其患病人 ...

  2. [转载] python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    参考链接: Python vars() python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造 ...

  3. 利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息

    新增:国外疫情网站介绍 已更新:爬取国外疫情数据 已更新:新型肺炎历史数据下载 2020年3月27日补充: 制作了一个全球肺炎数据查询下载网站,效果如下: 访问地址:http://119.3.227. ...

  4. python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python ...

  5. 爬虫(2)之 Xpath(爬取丁香园)

    Xpath常用的路径表达式: XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. 在XPath中,有七种类型的节点:元素.属性.文本.命 ...

  6. 爬虫 -----beautifulsoup、Xpath、re (二)附爬取丁香园用户名以及回复内容

    目录 1.Xpath简介 1.1使用流程: 1.2Xpath常用的路径表达式 1.3 使用lxml解析 2 实战:爬取丁香园-用户名和回复内容 2.1 获取url的html 2.2 lxml解析htm ...

  7. Python爬虫笔记(3)- 爬取丁香园留言

    Python爬虫笔记(3)- 爬取丁香园留言 爬取丁香园留言:主要用到了模拟登录 爬取丁香园留言:主要用到了模拟登录 import requests, json, re, random,time fr ...

  8. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  9. 利用xpath爬取链家租房房源数据并利用pandas保存到Excel文件中

    我们的需求是利用xpath爬取链家租房房源数据,并将数据通过pandas保存到Excel文件当中 下面我们看一下链家官网的房源信息(以北京为例) 如图所示,我们通过筛选得到北京租房信息 那么我们需要将 ...

最新文章

  1. 搭建网络及服务器系统,网络服务器搭建与管理
  2. 张槎地铁站定位综合枢纽 与多条重要轨道交汇
  3. 知识图谱(知识图谱构建)
  4. Tomcat - Tomcat套娃式架构与配置文件的对应关系解读
  5. 域客户端的计算机更名
  6. 商业项目中最受欢迎的 7 种编程语言
  7. 河南农大姚文与张会勇课题组合作发表长文综述,系统总结R/Shiny在开发交互式生物学网络工具中的应用...
  8. linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件
  9. 华为向全球发布AI数据库、分布式存储,跑分轻松拿世界第一
  10. linux系统uptime,top命令详解
  11. struct device结构体(2.6.23)
  12. VLC 媒体播放器 libmicrodns 库修复 RCE 漏洞
  13. python基本执行方式_Python开发的3种命令执行方法
  14. 基于optisystem的光发送机的设计和仿真
  15. 微信app支付签名错误
  16. 微服务网关Gateway基本知识(一)
  17. 挺带劲!这款开源数据库迁移工具超牛逼
  18. 解决vscode突然不能自动补全html标签
  19. Java基础 - 第一章 计算
  20. 如何做好数字化运营,打造战略落地的最佳武器?他们这么说|2021全球数字价值峰会...

热门文章

  1. Unity大型场景程序化生成及优化技术—FPS迷宫生成和优化
  2. 33.Redis详解
  3. MySQL连接、SSL加密与密码插件
  4. 【雅思口语】安娜口语学习记录 Part2
  5. 三十、再问唐僧出生之迷
  6. Rstudio 更改工作路径和安装包的路径
  7. 狄利克雷卷积_积性函数和狄利克雷卷积小结
  8. F5 Networks数据中心资源整合解决方案
  9. IS_REACHABLE
  10. 使用ScanShadowsFilter过滤激光雷达拖尾