小猿猴GISer 1周前 以下文章来源于GIS点滴 ,作者James Hello,大家好,我是James. 我们知道:数据是GIS比较重要的组成部分,没有基础数据的支撑,其他工作无从展开。可能你曾为了一份行政边界数据在群里或者论坛各种跪求,但都石沉大海,膝盖也已长出了老茧,今天我以一个近期遇到的数据爬取为例,手把手教你抓取地图矢量数据。 也是偶然看到天地图北京的官网有行政区、街道办的边界数据 惯性使然打开F12,惊奇地看一串串熟悉的坐标 曾经搜遍论坛网站各个角落,今天在官方却能轻而易举的找到,真是太激动 于是先研究了url请求结构,最终得到了北京16个区和下属街道办的边界信息 接下来跟大家分享抓取过程, 1、首先进入首页(http://beijing./bjtdt-mapcenter/) 2、点击【行政区划】,F12我们可以看到在http://beijing./tdt-web-sysmanager/services/catalog/special/getLoginOutCatalogSpecials/38ed87a3fe8e4bb1a01949c47baf5244请求结果中包含了北京下属的16个区! 3、展开其中一个后,看到更为详细的信息 4、点击东城区,我发现在http://beijing./tdt-web-sdks/biz/httpproxy/httpproxy.jsp?url=http://www.:8080/dfc/services/sgssfs/2220?request=getfeature&filter=+GBCODE%3D%27110101%27请求结果中有不得了的坐标串,明显是行政区划的边界节点坐标串嘛 5、继续点击建国门街道,同样在http://beijing./tdt-web-sdks/biz/httpproxy/httpproxy.jsp?url=http://www.:8080/dfc/services/sgssfs/2220?request=getfeature&filter=+GBCODE%3D%27110101001%27看到街道办的坐标串,完美! 最后得到结果如下: 北京市辖区边界 北京市辖区街道办边界 接下来上python代码 1、首先惯例,我使用的是python2,首先声明编码,导入request、json解析模块 2、接下来需要写4个函数方法, 主要是: (1)解析、构造url地址 (2)组织爬取的信息 3、然后是调取以上函数方法,写入至txt文件 4、最后分别得到行政区和街道办边界节点的txt文本 |
|
来自: 昵称QAb6ICvc > 《arcgis》