在进行定量城市分析时(如研究某市某片区的空间分析),需要用到地理位置信息以及现状设施建筑等的分布情况,这就必须获得相关的地理坐标信息。因此数据的获取与处理是进行定量城市分析所需的前置作业,此阶段的工作决定了后续分析的效度和质量。

一、使用工具

这里采集数据使用到的工具是火车头采集器8.5。

火车头采集器一款互联网数据抓取、处理、分析,挖掘软件,可以抓取网页上散乱分布的数据信息,并通过一系列的分析处理,准确挖掘出所需数据。

特点:采集不限网页,不限内容;

分布式采集系统,提高效率;

支持PHP和C#插件扩展,方便修改处理数据,但需要懂得火车头规则或者正则表达式。

二、数据采集方式–基于百度地图API的数据采集

  API是一些预先定义的函数,目的是提供应用程序开发人员基于某软件或硬件得以访问一组程序的能力,而又无需访问源码,或理解程序内部工作机制的细节。API服务商在提供数据的同时也在收集用户的信息,这是一个双向过程。

百度地图Web服务API中提供了地点检索服务、正/逆地理编码服务、路线规划、批量算数、时区服务、坐标转换服务及鹰眼轨迹服务等。其中地点检索服务(又名Place API),提供多种场景的地点(POI)检索功能,包括城市检索、周边检索、矩形区域检索。

以通过百度地图API获取绵阳市饭店数据为例。

三、数据采集步骤

1.申请百度地图开放平台开发者秘钥

首先打开百度地图开放平台(http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5),点击右上角控制台,再点击应用管理→我的应用→创建应用,申请开发者秘钥(ak),并选择以下服务项。


申请后获得的ak

2.通过接口获取详细地理信息

开发者可以通过接口获取地点(POI)基础或详细地地理信息。其返回的是Json类型数据(一个区域最大返回数是400,每页最大返回数为20)。当某区域、,某类POI个数多于400时,可以选择把该区域分成子区域进行检索或通过矩形、圆形区域方式进行检索查阅页面中Place检索格式和实例如下:

格式:http://api.map.baidu.com/place/search?&query=关键字&bounds=查询区域&output=输出格式类型&key=用户密钥

实例:http://api.map.baidu.com/place/search?&query=ATM机&bounds=绵阳&output=json&ak=你的密钥 (你的秘钥就是上一步申请得到的)

(什么是Place API详细说明可见此网址https://developer.baidu.com/map/place-api.htm#.E4.BB.80.E4.B9.88.E6.98.AFPlace_API.EF.BC.9F)

其中“关键字”、“查询区域”、“输出格式类型”、“用户秘钥”可以根据自己的需要替换,而page_num为选填项,表示分页码,因为只有设置了page_num字段才会在结果页面中返回标识总条数的total字段,方便在火车采集器中做相关设置,如下:

http://api.map.baidu.com/place/v2/search?&query=饭店&tage=美食&region=绵阳&output=json&page_num=0&ak=kRA0vIfH6UHEVYUAhPLnkS72BwtVBYnI

访问该网址,返回结果如下图:

3.用火车头采集器采集地理信息

在火车头软件中,首先点击左上角的“新建”,然后点击“分组”进入新建界面自己命名然后保存既可。建好分组后,再点击新建。然后点击“任务”,命名为“百度API”。

然后在第一步–采集规则页面,点击“添加”键,在添加开始采集网址页面,选择“批量/多页”方式获取地址格式,在地址格式一栏中填入Place检索链接,并将page_num字段用(*)标识为变量,选择等差数量方式,在项数与返回Json结果中total字段一致,公差为1。

在访问百度地图API接口返回的Json网页中,在需要提取信息处复制该条信息。例如复制此处获得“name”:周肥肠(总店)”,。

在火车头采集器第二步采集内容规则页面,添加标签,标签名填入“名称”,提取数据方式处选择“前后截取”,在标签编辑页用(*)代替要采集的内容,并将要采集内容的前后内容分别填入“开始字符串”、“结束字符串处”。

经度、纬度的获取方式与“名称”方式相同。

添加完成后,点击规则测试页面的“测试”键,对POI的“名称”、“经度”、“纬度”三种标签进行测试,测试可以得到正确获取信息之后,进入“第三步:发布内容设置”页面,选择“方式二:保存为本地Word,Excel,Html,Txt等文件”,并制作与标签相对应的Gsv格式的模板,完成后,点击“保存”按钮,采集数据就完成了。

退回到主界面,在“采网页”及“采内容”下打对勾,点击开始任务,即可完成百度地图绵阳市饭店的数据获取。

文章来源于互联网,如有雷同请联系站长删除:基于百度地图API的城市数据采集方式

发表评论