Python写出新冠状病毒确诊人数地图的方法


Posted in Python onFebruary 12, 2020

最近肺炎的发展速度属实有点恐怖。刚知道python的pyecharts这个库,想到pyecharts可视化的特点,正好可以扒一下肺炎实时播报的官网也做个地图。

第一步扒取数据:发现一个大问题,各省的确诊人数网页源代码里竟然没有。百度才知道这是js渲染生产的,又是一顿查。找到一种方法。用selenium执行一遍网页渲染的过程就可以了,首先安装selenium。

pip install selenium

在引用库的时候还需要webdriver这个启动浏览器的东西,我用的是google,所以要下载chromedriver。先查找自己chrome的版本

Python写出新冠状病毒确诊人数地图的方法

然后找到chromedriver的对应版本,下载

Python写出新冠状病毒确诊人数地图的方法

下载之后把exe文件解压到编代码的文件夹里就可以使用了。现在可以爬数据了,导入库

from selenium import webdriver

然后驱动浏览器,并访问网址

driver = webdriver.Chrome()
driver.get('https://news.163.com/special/epidemic/#map_block')

这里记住得设置一个等待,要不然爬取数据的时候可能程序运行完了网页还没打开

driver.implicitly_wait(5)

这时就可以获取数据了

data = driver.page_source

还是得用正则表达式筛选一下想要的数据,别忘了在前面导入import re

name = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32]
value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32]

爬取成功

Python写出新冠状病毒确诊人数地图的方法

已经爬取到数据了,接下来就是可视化的部分了,用到pyecharts的Map块。

pyecharts文档链接在这里——按照文档里把库导入

Python写出新冠状病毒确诊人数地图的方法

地图的代码如下

Python写出新冠状病毒确诊人数地图的方法

但是我Faker这个下不下来,后来查了一下用了这个大佬的方法:地址

整体代码如下:

from pyecharts.charts import Map
from pyecharts import options as opts
import re
from selenium import webdriver

driver = webdriver.Chrome()


driver.get('https://news.163.com/special/epidemic/#map_block')
driver.implicitly_wait(5)
#data = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[2]/ul[1]/li[1]/div/span[1]').text#.get_attribute('href')
data = driver.page_source
attr = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32]
value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32]

sequence = list(zip(attr, value))


def map_visualmap(sequence, year) -> Map:
 c = (
  Map()
   .add(year, sequence, "china", )
   .set_global_opts(
   title_opts=opts.TitleOpts(title="新冠装状病毒各省确诊人数"),
   visualmap_opts=opts.VisualMapOpts(max_=130, min_=95),
  )
 )
 return c


map = map_visualmap(sequence, '新冠病毒感染情况')
map.render(path='2020.html')

看一下成果吧!

以上就是三水点靠木小编整理的全部内容,感谢大家的学习和支持。

Python 相关文章推荐
Django接受前端数据的几种方法总结
Nov 04 Python
python开发利器之ulipad的使用实践
Mar 16 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
深入理解Python中的super()方法
Nov 20 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python实现输入数字的连续加减方法
Jun 22 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
python中下标和切片的使用方法解析
Aug 27 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
pycharm通过ssh连接远程服务器教程
Feb 12 #Python
python日期与时间戳的各种转换示例
Feb 12 #Python
Python使用uuid库生成唯一标识ID
Feb 12 #Python
将python文件打包exe独立运行程序方法详解
Feb 12 #Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 #Python
Python sep参数使用方法详解
Feb 12 #Python
Python多重继承之菱形继承的实例详解
Feb 12 #Python
You might like
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
JS动态日期时间的获取方法
2015/09/28 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python的Django框架中if标签的相关使用
2015/07/15 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
安装python及pycharm的教程图解
2019/10/10 Python
python实现银行管理系统
2019/10/25 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
浅谈Python协程
2020/06/17 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
英语演讲稿范文
2014/01/03 职场文书
保密普查工作实施方案
2014/02/25 职场文书
师德建设实施方案
2014/03/21 职场文书
入党转正介绍人意见
2015/06/03 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers