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

 更新时间:2020-02-12 22:00:19   作者:佚名   我要评论(0)

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

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

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

pip install selenium

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

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

下载之后把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]

爬取成功

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

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

地图的代码如下

但是我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+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
  • node爬取新型冠状病毒的疫情实时动态
  • 将新型冠状病毒转二进制的代码(首发)
  • Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
  • Python实现新型冠状病毒传播模型及预测代码实例
  • PHP实现新型冠状病毒疫情实时图的实例
  • Python实现实时数据采集新型冠状病毒数据实例
  • python模拟预测一下新型冠状病毒肺炎的数据
  • 使用Python制作新型冠状病毒实时疫情图

相关文章

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

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

    最近肺炎的发展速度属实有点恐怖。刚知道python的pyecharts这个库,想到pyecharts可视化的特点,正好可以扒一下肺炎实时播报的官网也做个地图。 第一步扒取数据:发
    2020-02-12
  • 基于c++11的event-driven library的理解

    基于c++11的event-driven library的理解

    做了一个不到200行的事件驱动库,基于c++11标准,header-only,跨平台。支持自定义事件,通过wake_up函数异步唤醒。写这个库的动机是想为之前自己写的日志库提供日志
    2020-02-12
  • Python3 Click模块的使用方法详解

    Python3 Click模块的使用方法详解

    Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现。恰好我最近在开发的一个小工具需要在命
    2020-02-12
  • 解决pyCharm中 module 调用失败的问题

    解决pyCharm中 module 调用失败的问题

    检测自己当前系统环境中python是否已经安装该module,若未安装请自行安装 检测自己的pycharm使用的环境变量是否与当前环境一致 若不一致,则在File中选择Default S
    2020-02-12
  • pycharm 设置项目的根目录教程

    pycharm 设置项目的根目录教程

    clone 一个新项目,发现导包的时候出错 … 原因可能是 pycharm 的根目录设置不对。 设置根目录的步骤 如下 : 以上这篇pycharm 设置项目的根目录教程就是小编分享给
    2020-02-12
  • Python的赋值、深拷贝与浅拷贝的区别详解

    Python的赋值、深拷贝与浅拷贝的区别详解

    在python中,给一个对象赋值,实际上就是对象对内存空间存储的值的引用。当我们把对象赋值给另一个变量的时候,这个变量并没有拷贝这个对象,而只是拷贝了这个对象
    2020-02-12
  • C/C++实现树操作的实例代码

    C/C++实现树操作的实例代码

    预处理命令 #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 typedef int elemtype; typedef struct tNode* tree; typedef struct tNode
    2020-02-12
  • 解决python 找不到module的问题

    解决python 找不到module的问题

    在pycharm中,可以通过venv来建立工程,运行等等。 但是一旦把这个工程文件夹拿到其他地方运行,而且不是在venv环境中运行,就有可能遇到有些module找不到的情况。
    2020-02-12
  • linux防墙iptables详细介绍、配置方法与案例

    linux防墙iptables详细介绍、配置方法与案例

    1.1 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的**基于包过滤的防火墙工具**,它的功能十分
    2020-02-09
  • Python 动态变量名定义与调用方法

    Python 动态变量名定义与调用方法

    动态变量名赋值 在使用 tkinter 时需要动态生成变量,如动态生成 var1...var10 变量。 使用 exec 动态赋值 exec 在 python3 中是内置函数,它支持 python 代码的动
    2020-02-09

最新评论