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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
python3.7简单的爬虫实例详解
Jul 08 Python
Django框架 信号调度原理解析
Sep 04 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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 判断服务器操作系统的类型
2014/02/17 PHP
php动态函数调用方法
2015/05/21 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
js select option对象小结
2013/12/20 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
详解python持久化文件读写
2019/04/06 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python脚本后台执行方式
2019/12/21 Python
Django日志及中间件模块应用案例
2020/09/10 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
如何写一份好的自荐信
2014/01/02 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
中学生运动会入场词
2014/02/12 职场文书
电工工作职责范本
2014/02/22 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
白酒代理协议书范本
2014/10/26 职场文书
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle