我有一个包含5000建筑物的数据库,我想通过它的地址找到它们,所以我像这样使用GeoPy:
def getLalo(address):
geolocator = Nominatim()
location = geolocator.geocode(address)
if location == None:
return [0,0]
return [location.latitude,location.longitude]
bmk['latitude'], bmk['longitude']= bmk.apply(lambda row: getLalo(row['full_address']), axis=1)
然而,好像我得到了GeocoderServiceError: HTTP Error 429: Too Many Requests
我该如何避免这种情况? THX!
答案 0 :(得分:0)
如果您在短时间内发送请求, 必须考虑速率限制。
您将收到: 请求过多429 HTTP错误或超时。
尝试使用RateLimiter
from geopy.extra.rate_limiter import RateLimiter
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
参考 https://geopy.readthedocs.io/en/1.16.0/#usage-with-pandas