Python抓取实时数据绘制地图
今天我们来看看如何实现通过抓取最新疫情绘制地图。同样使用PyEcharts进行绘制全国疫情地图,还没看过前几期使用PyEcharts绘制疫情地图文章的,可以通过以下链接查看
抓取数据需要使用selenium模块,如果没有安装的,可以先安装
pip install selenium
然后需要使用chrome浏览器,还要根据你的chrome浏览器版本下载对应的chromedriver.exe 文件。
打开chrome浏览器,输入chrome://version/ 回车,即可查看Chrome浏览版本
回复“CH”获取Chromedrvier下载地址
Chromedrvier下载后,将文件复制至与chrome.exe所在文件夹里。我的路径是这个
C:Program Files (x86)GoogleChrome
Application
你看看你的是安装在哪个路径下,如果默认的话,很可能就是跟我的一样。
我们主要是从百度疫情数据(https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_3)进行抓取再绘制地图,地图效果如下:
下面开始进行抓取
from selenium import webdriver
import pandas as pd
browser = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver.exe')
browser.get("https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_3")
html = browser.page_source
data = pd.read_html(html)
browser.close()
抓取得到的数据是这样的
如果抓取成功了,再单独运行后面绘制地图的代码,不要重复运行抓取数据的代码,因为百度会做限制的,太频繁会限制访问的。切记切记,所以抓取数据代码也要写好了再测试运行,不要重复测试。
下面就是绘制地图代码,前面说的四篇使用PyEcharts绘制疫情地图文章都看过的话,这里就很简单了,接着抓取数据代码运行后,再单独运行以下代码即可出图了。
from pyecharts.charts import Map
from pyecharts import options as opts
data1 = data[1].drop(index=range(1,19))
# 将数据转换为二元的列表
list1 = list(zip(data1['地区'],data1['确诊']))
# 创建一个地图对象
map_1 = Map()
#对全局进行设置
map_1.set_global_opts(
#设置标题
title_opts=opts.TitleOpts(title="全国疫情地图"),
#设置最大数据范围
visualmap_opts=opts.VisualMapOpts(max_=2500,range_color=["#FFFFFF","#FFCC00","#CC0000"]))
# 使用add方法添加地图数据与地图类型
map_1.add("累计确诊人数", list1, maptype="china")
# 地图创建完成后,通过render()方法可以将地图渲染为html
map_1.render('全国疫情地图.html')
THE END
0
二维码
海报
Python抓取实时数据绘制地图
今天我们来看看如何实现通过抓取最新疫情绘制地图。同样使用PyEcharts进行绘制全国疫情地图,还没看过前几期使用PyEcharts绘制疫情地图文章的,可以通过以下……