Python抓取实时数据绘制地图
作者:互联网
今天我们来看看如何实现通过抓取最新疫情绘制地图。同样使用PyEcharts进行绘制全国疫情地图,还没看过前几期使用PyEcharts绘制疫情地图文章的,可以通过以下链接查看
8行Python代码轻松绘制新冠疫情地图
动态新冠疫情地图Python轻松画
Python绘制16省支援湖北地图
湖北动态新冠疫情地图Python轻松画
抓取数据需要使用selenium模块,如果没有安装的,可以先安装
pip install selenium
然后需要使用chrome浏览器,还要根据你的chrome浏览器版本下载对应的chromedriver.exe 文件。
打开chrome浏览器,输入chrome://version/ 回车,即可查看Chrome浏览版本
长按识别下方二维码,并关注公众号
回复“CH”获取Chromedrvier下载地址
Chromedrvier下载后,将文件复制至与chrome.exe所在文件夹里。我的路径是这个
C:\Program Files (x86)\Google\Chrome\
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)\Google\Chrome\Application\chromedriver.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')
如果你喜欢本文,可以点击右下角在看
如果你在跟着学习,请在留言区留言:打卡
如果你刚看到本文,可以查看本系列历史文章跟着学习:
跟小白学Python数据分析——Anaconda安装
跟小白学Python数据分析——使用spyder
跟小白学Python数据分析——数据导入1
跟小白学Python数据分析——数据导入2
跟小白学Python数据分析——描述性统计分析
跟小白学Python数据分析——分组分析
8行Python代码轻松绘制新冠疫情地图
动态新冠疫情地图Python轻松画
Python绘制16省支援湖北地图
湖北动态新冠疫情地图Python轻松画
长按识别下方二维码,并关注公众号,回复“PY”领取1GB Python数据分析资料
1.回复“PY”领取1GB Python数据分析资料
2.回复“BG”领取5GB 名企数据分析报告
标签:数据分析,绘制地图,疫情,Python,地图,抓取,新冠 来源: https://blog.51cto.com/15072917/2580182