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 相关文章推荐
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 Python
python中的全局变量用法分析
Jun 09 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
对django中foreignkey的简单使用详解
Jul 28 Python
django foreignkey(外键)的实现
Jul 29 Python
对Django url的几种使用方式详解
Aug 06 Python
Pytorch模型转onnx模型实例
Jan 15 Python
Python实现CNN的多通道输入实例
Jan 17 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
PHP默认安装产生系统漏洞
2006/10/09 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
php简单生成随机数的方法
2015/07/30 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
javascript dom追加内容实现示例
2013/09/21 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
python 调用钉钉机器人的方法
2019/02/20 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
python实现拼图小游戏
2020/02/22 Python
俄罗斯游戏商店:Buka
2020/03/01 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
环保倡议书400字
2014/05/15 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
2014年销售工作总结
2014/12/01 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技