网页数据抓取软件(一个不用Python爬虫批量下载全国GeoJSON矢量边界数据的方法)

优采云 发布时间: 2022-03-27 17:09

  网页数据抓取软件(一个不用Python爬虫批量下载全国GeoJSON矢量边界数据的方法)

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

  

  环境要求

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

  PS:本文所有操作均在MacOS下完成。请自行在其他平台上测试。如果您有任何问题,请反馈。

  抓住想法

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

  国家数据:

  

  省级数据:

  

  地级市数据:

  

  此时,不难发现以下规律:

  国家数据:

  下载整张图片只有一个数据,直接下载即可。这是:

  省级数据:

  下载所有省份数据,只需要拥有所有省份的adcode并构建下载地址即可,例如:

  甘肃:

  内蒙古:

  以此类推,地级市的数据与省的数据相似,只是将adcode替换为每个地级市的数据。那么如何下载所有的广告代码呢?我们再观察一下,回到原来的网站,有一个Excel下载按钮,我们先下载。

  

  打开看看:

  

  点击此处的省、市、区,可下载各级别的属性数据。点击下载:

  

  数据格式如下:

  

  至此,我们的爬取思路就完成了,如下:

  抓取所有省级adcode 抓取所有地级市的adcode 构建url 批量下载准备工具 Terminalwget 或迅雷等支持批量下载的工具 数据下载

  下面是实战过程,先获取所有省的adcode,下载省标签下的json数据,地址:

  要提取所有省级广告代码,请在终端中输入以下命令:

  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 数据。

  

  

  地级市数据下载方式与省级市相同。只需要更改上述命令的源文件,这里不再赘述。

  总结

  其实这个数据抓取属于一个很简单的层次,但又离不开它,不管是命令行还是Python、Node,不管是MacOS还是Linux、Windows,都要学会善于思考,善于使用各种工具解决各种问题。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线