pip install geopy
安装了版本为1.21.0
的geopy
from geopy.geocoders import Baidu
geolocator = Baidu(api_key='我的ak')
location = geolocator.geocode('西北农林科技大学')
print(location.address)
print((location.latitude, location.longitude))
print(location.raw)
报错geopy.exc.GeocoderAuthenticationFailure: Authentication Failure
geopy构造的url
https://api.map.baidu.com/geocoder/v2/?ak=我的ak&output=json&address=西北农林科技大学
访问得到结果
{"status":200,"message":"APP不存在,AK有误请检查再重试"}
使用的Baidu API仍然是V2,但现在的版本已经是V3了,正确的调用应该是
http://api.map.baidu.com/geocoding/v3/?address=西北农林科技大学&output=json&ak=我的ak
关键点就是geocoder/v2改成geocoding/v3
修改C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\geopy\geocoders\baidu.py
api_path = '/geocoding/v3'
实际上由于API名称变更,库很久没有维护,若要用全部功能,改了一处还要改很多处。