python爬取高德poi数据_高德地图之python爬取POI数据及其边界经纬度

目前高德的边界没法批量爬取,不过可以采用百度地图的接口来替代,目前用着还可以,参见这里:

为了方便大家,不用再为安装环境,以及运行报错等问题困扰,目前已经将POI数据爬取做成一个在线公开的数工具,地址奉上:

免费使用哦,只需要申请个高德key,然后选择需要爬取的城市,关键字名,以及数据的坐标系,即可将数据导出到本地,无需运行任何代码。

欢迎加入地图数据爬取交流群:626697156

背景

由于之前项目需要从高德地图上爬取一个地方的不同分类数据,所以初学了一下爬虫,也了解了一些高德地图提供的web API用来获取免费的地图数据。因此写了一篇博客用来记录一下大致步骤。

项目的需求是爬取一个地方的七个分类数据, 包括大学、景点、酒店等等,其中一条数据叫作一个POI。需要的poi点的字段包括:poi点id、名称name、位置(经纬度)location、所属省名称pname、所属省编号pcode、所属城市名称cityname、所属城市编号citycode、所属区名称adname、所属区编号adcode、所在地址address、所属类别type、边界经纬度。这里先展示一下最后爬取到的保存在excel表格中的数据吧。

657d599a64a229a947de29b483d4598c.png

步骤说明

1. 申请账号

到高德开放平台 | 高德地图API注册账号,并且申请web服务的AK密钥,每次发送请求需要带着这个key去认证。注册账号登陆后点击右上角的控制台 ->应用管理 -> 创建应用 -> 添加新key,注意选择web api,就得到了一个可以使用web服务的key密钥。

2. 确定api查询的地址:

查找高德地图提供的web api下的搜索模块,http://lbs.amap.com/api/webservice/guide/api/search 使用关键字搜索服务,关键字搜索API的服务地址:

http://restapi.amap.com/v3/place/text?parameters

我们需要根据API提供的参数说明拼接GET请求所需要的参数URL。常用的使用参数说明:

key

用户在高德地图官网申请Web服务API类型KEY

keywords

查询关键字

types

查询POI类型

city

城市

offset,page

分页参数

output

返回数据格式类型,可选值:JSON,XML

比如,查询珠海的所有大学数据,拼接起来完整的url:

http://restapi.amap.com/v3/place/text?&keywords=%E5%A4%A7%E5%AD%A6&city=%E7%8F%A0%E6%B5%B7&output=json&offset=20&page=1&key=9f99fc570ccaf6abc209780433d9f4c1&extensions=all

使用浏览器打开上面的链接,返回的数据使用hijson格式化后截图如下:

a82b0557f5053523032716e064b46bad.png

其中的pois展开后就是返回的当前页的POI数据。

3. 根据获取到的POI数据的id获取其边界经纬度

高德地图上搜索一个景点时,如果有边界的景点会圈出其范围,如下图所示:

85cb27ac550b7156b754cb5836d9887e.png

打开F12切换到network查看,点击一下该范围,会看到发送了一个detail请求,返回了这个圈的详细信息。请求的地址如下:

https://ditu.amap.com/detail/get/detail?id=B0014014AD

该接口传入POI点的id,返回详细信息,我们在第二部拿到了POI点的ID,因此可以遍历每一个POI数据,然后根据id获取边界数据,获取到的detail数据格式化后如下:

  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值