GeoPy: ошибка GeocoderQuotaExceeded

Я только начал использовать GeoPy. Мне нужно преобразовать данное местоположение в широту и долготу. Однако я получаю ошибку GeocoderQuotaExceeded. Я просто следовал примеру, приведенному в документации. Любая помощь будет принята с благодарностью.

from geopy.geocoders import GoogleV3
geolocator = GoogleV3()
address, (latitude, longitude) = geolocator.geocode("175 5th Avenue NYC")
GeocoderQuotaExceeded: The given key has gone over the requests limit in the 24 hour     period or has submitted too many requests in too short a period of time

Это произошло на самом первом запросе. я никогда не делал никаких других запросов. Это был первый раз, когда я использовал приложение.


person Manoj    schedule 08.02.2014    source источник


Ответы (4)


Из моих комментариев к ОП...

Это означает, что вы использовали свою квоту от Google.

Настроили ли вы свой собственный ключ API и проверили, не превышаете ли вы допустимое? Я предполагаю, что под капотом используется эта служба.

NB: если есть кто-то еще с таким же общедоступным IP-адресом, использующий службу (университет, та же компания и т. д.), а вы не используете ключ API, это может объяснить, что вы получили менее 2500 бесплатных использований.

person Basic    schedule 23.02.2014

Имейте список API и используйте их случайным образом для каждого запроса. Например, в python:

like keys = [key1,key1,key3....]

location = Geocoder(random.choice(keys)).geocode(address) 

or

location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)

На основе вашего требования. Ваше пособие было бы больше.

person Yaswanth    schedule 03.03.2016

В качестве временного решения вы можете использовать VPN (что дает вам еще один набор из 2 500 запросов бесплатно).

Решение со случайными ключами тоже должно работать и лучше для постоянного использования, но если вы только в процессе тестирования (что было в моем случае), это быстрое решение.

person Marek Fořt    schedule 23.08.2016

РЕДАКТИРОВАТЬ: по состоянию на июль 2018 года я обнаружил, что запросы по умолчанию для каждого ключа API составляют 1 в день. Таким образом, вам необходимо зарегистрировать платежный аккаунт на своей облачной платформе Google, чтобы получать около 1000 бесплатных запросов в день.

Регистрация собственного API — хороший шаг! Ответ @Yaswanth не совсем сработал для меня, но отсюда и отсюда: https://github.com/geopy/geopy, это делает:

Шаг 1. Зарегистрируйте свои закрытые ключи здесь: https://developers.google.com/maps/documentation/geolocation/intro

Шаг 2. В вашем питоне импортируйте хороший геокодер, я рекомендую GoogleV3.

from geopy.geocoders import GoogleV3

Шаг 3. Затем введите в свой код столько ключей, которые вы зарегистрировали по этой ссылке выше.

address = '1 Your Address Here' # Put in your address
geo_keys = [key1,key1,key3....] # Put in your API keys as strings
geolocator = GoogleV3( api_key=random.choice(geo_keys) )
geolocator.geocode( address )

Шаг 4. Тогда вы в деле!

print(geolocator.latitude)
print(geolocator.longitude)
person Kelton Temby    schedule 25.02.2018
comment
Если вам повезет, вы можете использовать все ключи примерно поровну, но как только срок действия одного из них истечет, вы начнете получать случайные периодические сбои. Лучше удалить ключи с истекшим сроком действия из списка и повторить попытку с одним из оставшихся ключей. Таким образом, вы получаете каждый последний запрос от ваших ключей, и нет трудно диагностируемых ошибок, когда ваш сайт становится более популярным. - person Basic; 01.08.2018