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中logging模块的用法实例
Sep 29 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
python修改txt文件中的某一项方法
Dec 29 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 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+mysql扎实个人基本功
2008/03/27 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
PHP四大安全策略
2014/03/12 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python3常见函数range()用法详解
2019/12/30 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
铭立家具面试题
2012/12/06 面试题
医药营销专业个人自荐信
2013/09/29 职场文书
生产部岗位职责范文
2014/02/07 职场文书
实验教师岗位职责
2014/02/13 职场文书
《胡杨》教学反思
2014/02/16 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
java设计模式--三种工厂模式详解
2021/07/21 Java/Android