python爬取高德POI数据存在的坑

python爬取高德POI数据存在的坑

背景

一个任务是爬高德数据,比如museum,park,shopping mall等数据,其中shopping mall数据不仅仅要爬取shopping mall本身数据,还有爬取shopping mall里面的POI数据.

坑1

最最基本的高德POI数据爬取,根据高德web api文档要求即可,此处存在的坑就是每个key可以爬取的次数有限制
python爬取高德POI数据存在的坑
解决方法是:
1.一个账号可以申请10个key,每个key都可以使用指定的次数;同事,还可以 使用亲朋好友的手机号创建新的账号,申请多个key
2. 让老板买一个企业key,有钱真的是万能的!

坑2

每一次url搜索,最多只能返回1000个POI(官方),但本少爷觉得好像貌似真的只能返回900个POI,所以此处用到四叉树的知识,而且需要使用多边形(矩形)搜索的方法.

如下,第一次搜索,POI数量>900,所以直接将搜索矩形划分为四块;第二次搜索,如果矩形中POI数量<900,则直接获取POI即可,否则继续划分对应的矩形为4块,一直循环下去,知道划分的矩形中POI数量小于900

python爬取高德POI数据存在的坑

坑3

通过解决坑1和坑2,可以获取POI基本数据,获取的POI数据中的空间信息只有一堆经纬度而已(我一直对AOI情有独钟,哈哈哈)。

AOI获取参考https://blog.csdn.net/qq_37696858/article/details/81351725,真心可以用

爬取shopping mall的同时,还要获取shopping mall里面的POI数据,最初的想法就是:
1.首先获取所有的shopping mall数据
2.根据每个shopping mall的id(可以认为是高德键值)获取对应的AOI
3.然后根据AOI的空间范围搜索within的POI

但是又的shopping mall数据不存在AOI,为什么不存在,估计高德测绘人员没有测绘吧。这种情况下,我就简单粗暴直接以shopping mall的location为中心,获取半径范围是300m内的POI。

完结。