更多分类
麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

「GIS教程」批量抓取全国GeoJSON数据(DataV.GeoAtlas)方法

在之前的文章中《利用Python获取全国GeoJSON数据并预览转换成shp格式文件》中介绍了使用 Python 下载DataV.GeoAtlas地图边界数据的方法,但在留言中有不少朋友告诉我使用 Python 爬虫抓数据要坐牢,吓到宝宝了,于是今天宝宝再给大家分享一个不用 Python 爬虫来批量下载全国GeoJSON矢量边界数据的方法。毕竟一个一个点,也是个不体力活不是。

DataV Geo

环境要求

推荐 MacOS Terminal (Mac原生自带),或者用 Linux 也行,也是原生自带 Terminal。实在不行,Windows也可以,但在 Windows 上需要安装 Windows Terminal,或者其他第三方 Terminal 工具。

PS:本文所有操作是在 MacOS 下操作完成,其他平台请大家自行测试,如有问题欢迎反馈。

抓取思路

使用命令行来做这个事情,不太方便像Python一样,让它先点哪个按钮再点哪个按钮(主要我水平太菜)。我们先观察一下数据结构,如下图:

全国数据:

全国GeoJSON数据

省级数据:

四川省GeoJSON数据

地级市数据:

成都市GeoJSON数据

到这就不难发现下面的规律:

全国数据:

下载全图的数据只有一个,直接下载就好。即:https://geo.datav.aliyun.com/areas/bound/100000_full.json

省级数据:

下载所有省级数据只要有所有省份的 adcode,并构造出一个下载地址就好,比如:

甘肃:https://geo.datav.aliyun.com/areas/bound/620000_full.json

内蒙古:https://geo.datav.aliyun.com/areas/bound/150000_full.json

以此类推,地级市数据和省级类似,不过把 adcode 换成了各个地级市的而已。那怎样下载所有的adcode?我们再观察,回到原网站上,有个Excel下载按钮,我们先下载下来看看。

全国GeoJSON Excel

打开看:

excel格式全国属性数据

这里点击 province、city、district 即可下载各个级别的属性数据。点击下载:

下载excel格式全国属性数据

数据格式如下:

excel格式全国属性数据格式

至此我们的抓取思路就完整了,如下:

  1. 抓取所有的省级adcode
  2. 抓取所有地级市的adcode
  3. 构造url批量下载

准备工具

  1. Terminal
  2. wget或者迅雷等任何支持批量下载的工具

数据下载

下面就是实践过程了,先获取所有的省级adcode,下载province标签下的json数据,地址:http://datavmap-public.oss-cn-hangzhou.aliyuncs.com/areas/csv/100000_province.json

提取所有的省级adcode,在Terminal中输入如下命令:

cat 100000_province.json | grep -Eo \"adcode\"\:\"\(\[0-9\]{6}\)\", > provinces.txt

sed 's/\"adcode\"\:\"/https:\/\/geo\.datav\.aliyun\.com\/areas\/bound\//g' provinces.txt > tmp.txt

sed 's/\"\,/\_full\.json/g' tmp.txt > provinces.txt && rm tmp.txt

wget -i provinces.txt

执行完之后,所有的省级GeoJSON数据就下载下来了。

省级GeoJSON数据

省级GeoJSON数据

地级市的数据下载方法与省级一致,只需要把上面命令源文件换一下即可,这里就不赘述了。

总结

其实这个数据抓取属于非常简单的级别,但万变不离其中,不管是命令行还是Python、Node,不管是MacOS还是Linux、Windows,我们要学会善于思考,善于使用各类工具来解决各类问题。

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
B站关注
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
麻辣GIS小破B站
有趣的技术视频

留言板(小编看到第一时间回复)