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中实现常量(Const)功能
Jan 28 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
python和flask中返回JSON数据的方法
Mar 26 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
python2和python3在处理字符串上的区别详解
May 29 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python实现简单的俄罗斯方块游戏
Sep 25 Python
Python 阶乘详解
Oct 05 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+AJAX实现投票功能的方法
2015/09/28 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
使用js画图之画切线
2015/01/12 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
JSONP跨域请求
2017/03/02 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
vue-router传参用法详解
2019/01/19 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
乡镇干部先进事迹材料
2014/02/03 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
运动会广播稿200字
2015/08/19 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android