【爬虫】Java关于高德地图爬取数据

不管是目前什么行业,对数据分析和做出合适的判断才是最重要的选择,比如,在某一个城市开一家餐馆,可以去了解这个城市目前一共有多少餐馆,分别那种菜系占比最多,大概菜系的分布范围等等信息,都可以通过爬虫的数据获得更好的分析和抉择。

总结步骤如下:

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

  2. 查找高德地图提供的web api下的搜索模块使用API文档开发指南

    http://lbs.amap.com/api/webservice/guide/api/search

 

之前本人试过通过高德地图中的搜索页面搜索功能,不输入key,但是访问次数有一定的限制,就会让输入拼图验证

这种方法不可取只能去注册key,然后去获得需要的数据

关于高德地图信息抓取,我们根据高德地图搜索POI文档 ,简单的说下两种比较实用的方法

第一种  多边形搜索

多边形搜索需要在地图上绘制经度和纬度用","分割,经度在前,纬度在后,坐标对用"|"分割。经纬度小数点后不得超过6位。         多边形为矩形时,可传入左上右下两顶点坐标对;其他情况下首尾坐标对需相同

示例:

如上图四个marker点,调用高德地图POI搜索功能即可搜索这个片区内的数据信息

测试接口:

https://restapi.amap.com/v3/place/polygon?polygon=108.875542,34.193769|108.880032,34.193724|108.880038,34.191466|108.875633,34.191399|108.875542,34.193769&key=<自己的Key>

可传入keywords和types,当keywords和types为空的时候, 会默认指定types为120000(商务住宅)&150000(交通设施服务) 

查询POI类型下载POI分类编码和城市编码表  

https://lbs.amap.com/api/webservice/download

 

POI分类编码部分截图

 

由此可见,可以根据需要的菜系类型查找某一地区菜系的分布效果

返回数据格式:

           

名称

含义

规则说明

status

结果状态值,值为0或1

0:请求失败;1:请求成功

info

返回状态说明

status为0时,info返回错误原因,否则返回“OK”。详情参阅info状态表

count

搜索方案数目(最大值为1000)

 

suggestion

城市建议列表

当用户输入的词语为泛搜索词的时候,将显示城市列表

 

keywords

唯一ID

 
 

cities

城市列表

 
 

name

名称

 

num

该城市包含此关键字的个数

 

citycode

该城市的citycode

 

adcode

该城市的adcode

 

pois

搜索POI信息列表

 
 

poi

POI信息

 
 

id

唯一ID

 

parent

父POI的ID

当前POI如果有父POI,则返回父POI的ID。可能为空

name

名称

 

type

兴趣点类型

顺序为大类、中类、小类

例如:餐饮服务;中餐厅;特色/地方风味餐厅

typecode

兴趣点类型编码

例如:050118

biz_type

行业类型

 

address

地址

东四环中路189号百盛北门

location

经纬度

格式:X,Y

distance

离中心点距离

单位:米

必须说明, 此结果仅在周边搜索的时候有值

tel

该POI的电话

 

postcode

邮编

 extensions=all的时候显示 

website

该POI的网址

 extensions=all的时候显示 

email

该POI的电子邮箱

 extensions=all的时候显示 

pcode

poi所在省份编码

 extensions=all的时候显示 

pname

poi所在省份名称

若是直辖市的时候,此处直接显示市名,例如北京市

citycode

城市编码

 extensions=all的时候显示 

cityname

城市名

 若是直辖市的时候,此处直接显示市名,例如北京市 

adcode

区域编码

 extensions=all的时候显示 

adname

区域名称

区县级别的返回,例如朝阳区

entr_location

入口经纬度

 extensions=all的时候显示 

exit_location

出口经纬度

 extensions=all的时候显示 

navi_poiid

地图编号

 extensions=all的时候显示 

gridcode

地理格ID

 extensions=all的时候显示 

alias

别名

 extensions=all的时候显示 

business_area

所在商圈

 extensions=all的时候显示 

parking_type

停车场类型

仅在停车场类型POI的时候显示该字段

展示停车场类型,包括:地下、地面、路边

 extensions=all的时候显示 

 tag 

 该POI的特色内容

 主要出现在POI为美食类的POI之中出现,此时代表特色菜

例如“烤鱼,麻辣香锅,老干妈回锅肉”

 

在其余POI类别的时候,会有小概率出现,此时代表此POI的特色内容

例如北京-第五季花艺 之中的“岁月静好,定情,如意花卡,圣诞之爱”

 

仅在extensions=all

indoor_map

是否有室内地图标志

1,表示有室内相关数据

0,代表没有室内相关数据

 extensions=all的时候显示 

indoor_data

室内地图相关数据

当indoor_map=0时,字段为空

 extensions=all的时候显示 

 

cpid

当前POI的父级POI

如果当前POI为建筑物类POI,则cpid为自身POI ID;如果当前POI为商铺类POI,则cpid为其所在建筑物的POI ID

floor

楼层索引

一般会用数字表示,例如8

truefloor

所在楼层

一般会带有字母,例如F8

groupbuy_num

团购数据

此字段逐渐废弃

business_area

所属商圈

 extensions=all的时候显示 

discount_num

优惠信息数目

此字段逐渐废弃 

biz_ext

深度信息

 extensions=all的时候显示 

 

rating

评分

仅存在于餐饮、酒店、景点、影院类POI之下

 

cost

人均消费

仅存在于餐饮、酒店、景点、影院类POI之下 

 

meal_ordering

是否可订餐

仅存在于餐饮相关POI之下(此字段逐渐废弃)

 

seat_ordering

是否可选座

仅存在于影院相关POI之下(此字段逐渐废弃) 

 

ticket_ordering    

是否可订票

仅存在于景点相关POI之下(此字段逐渐废弃) 

 

hotel_ordering

是否可以订房

仅存在于酒店相关POI之下(此字段逐渐废弃) 

photos

照片相关信息

extensions=all的时候显示

 

titile

图片介绍

 
     

url

具体链接

 

弊端:

调用次数有限制,只有2000次免费调用次数,可以购买次数

 

第二种:关键字搜索

 

通过用POI的关键字进行条件搜索,例如:肯德基、朝阳公园等;同时支持设置POI类型搜索,例如:银行查询城市

可选值:城市中文、中文全拼、citycode、adcode

如:北京/beijing/010/110000

填入此参数后,会尽量优先返回此城市数据,但是不一定仅局限此城市结果,若仅需要某个城市数据请调用citylimit参数。

如:在深圳市搜天安门,返回北京天安门结果。

 

规则:只支持单个关键词语搜索关键词支持:行政区名称、citycode、adcode

例如,在subdistrict=2,搜索省份(例如山东),能够显示市(例如济南),区(例如历下区)

例子:

https://restapi.amap.com/v3/place/text?keywords=&city=610115000000&offset=20&page=1&key=<自己的key>

部分数据存储:

 

这两个方法的实现大致相同,只是请求不同的URL地址

 

 

posted @ 2020-03-24 22:59  路大师_XA  阅读(2203)  评论(0编辑  收藏  举报