高德地图api坐标拾取器_Python调用高德地图API爬取经纬度

比起普通的静态网页爬虫,爬高德地图的麻烦之处在于API中存在参数。这需要我们首先要对高德地图API有个基本的了解。

登录高德地图API网站,点击“开发文档”,找到下图中的“地理/逆地理编码API”处,点击进入。

daf5e1905abf11ee8a939540a05a6111.png

我们可以看到一个API,其问号前面的部分是固定不变的,而问号后面的是参数部分。高德地图此处罗列了7个参数,包括2个必选参数,以及5个可选参数。这两个必选参数,一个是高德key,需要注册;另一个是参数address,比如人民公园。你也许需要的是南京的人民公园的经纬度信息,凑巧的是,北京也有一个人民公园。参数city的存在可以限定地址信息的范围,确保你获取的是南京的人民公园经纬度。参数output值得关注,默认的输出结果是json格式。

8e943f78d5625f5fedc8c1fb499487e7.png

f516123928baf51d0fcc140abd8f8383.png

如果我需要的不是某个建筑的经纬度,而是某个行政区域的呢?打个比方,我不想要南京的人民公园的经纬度,我想要的是南京市的经纬度。这样也是可以实现的,只需要参数address直接填入“南京市”即可,这便不需要参数city了。这样得出的经纬度,一般是各地行政中心所在的经纬度。

下面,我将爬取南京市的经纬度。

import requests
import json
url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
params = { 'key': '你的高德密钥',
           'address': '南京市'   }                # 将两个参数放入字典
res = requests.get(url, params)
res.text

输出结果如下:

0a9cadd9cf0be1ae2c8ddbe80ba8a313.png

输出结果是json格式,需要用到json模块将其转化为Python字典。

jd = json.loads(res.text)
jd

输出结果如下:

593cf058784f65f45e68cb541a6cd582.png
coords = jd['geocodes'][0]['location']
coords

输出结果如下:

9adffc3a9bce56ee815104fab23eb34a.png

这,便是南京市坐标。

为了方便起见,将上面过程整合为函数。

import requests
import json
def coords(city):
    url = 'https://restapi.amap.com/v3/geocode/geo'   # 输入API问号前固定不变的部分
    params = { 'key': '你的高德密钥',                 
               'address': city   }                    # 将两个参数放入字典
    res = requests.get(url, params)
    jd =  json.loads(res.text)
    return jd['geocodes'][0]['location']

下面,在自变量位置输入“南京市”,检验下函数正确性。

当大批量处理时,使用for循环即可。

1d66f4adc20f8b61c0f7856f2be5f154.png
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值