Google Places API в Python - PullRequest
       5

Google Places API в Python

0 голосов
/ 24 мая 2018

Я работаю с Google Places API в python, чтобы искать что-либо (задается как запрос) в городе / поселке / месте (указывается как местоположение).Ниже приведен фрагмент моего кода:

from googleplaces import GooglePlaces, types, lang


YOUR_API_KEY = 'xxxx'
google_places = GooglePlaces(YOUR_API_KEY)

query_result = google_places.text_search(
        query='Play Schools', location = 'Mumbai, India')
print(len(query_result.places))
for place in query_result.places:
    print (place.name)
    print (place.place_id)
    print('\n')

if (query_result.has_next_page_token):
query_result_next_page = google_places.text_search(
        pagetoken=query_result.next_page_token)

Теперь проблема заключается в том, что мой код ограничивает количество результатов до 20, и по одному и тому же запросу Карты Google возвращают более 20 результатов.Как мне получить все результаты?

РЕДАКТИРОВАТЬ : я добавил последние 3 строки кода, чтобы попытаться получить результаты на следующей странице, но я получаю сообщение об ошибке INVALID_REQUEST.

Спасибо, что прочитали мой вопрос.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я узнал, что происходит не так.Система выдавала INVALID_REQUEST, потому что токен next_page_token недействителен (есть небольшая задержка ч / б между тем, когда выдается токен next_page_token, и когда он станет действительным).Я скомпилировал первую половину кода (за исключением последних трех строк), а затем скомпилировал последние три строки, и это сработало !!Итак, насколько мне известно, задержка стала причиной ошибки.

Так что теперь все, что мне нужно сделать, это установить таймер на 1-2 секунды перед последним условием if.

Спасибо всем, кто прокомментировал и ответил на этот вопрос.Вы герои этого сообщества.

0 голосов
/ 24 мая 2018

По умолчанию каждый ближайший поиск или текстовый поиск возвращает до 20 результатов установления на запрос;однако каждый поиск может дать до 60 результатов, разбитых на три страницы.Если ваш поиск вернет больше 20, то в ответ на поиск будет добавлено дополнительное значение - next_page_token.Передайте значение next_page_token параметру pagetoken нового поиска, чтобы увидеть следующий набор результатов.Если next_page_token имеет значение null или не возвращается, дальнейших результатов нет.Существует небольшая задержка между моментом выдачи next_page_token и его вступлением в силу.Запрос следующей страницы до того, как она станет доступной, вернет ответ INVALID_REQUEST.Повторная попытка запроса с тем же next_page_token вернет следующую страницу результатов.

Проверьте этот URL: ЗДЕСЬ

Добавьте PagerToken в качестве дополнительного параметра сURL-адрес вашего HTTP-запроса, подобный этому

https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=CpQCAgEAAFxg8o-eU7_uKn7Yqjana-HQIx1hr5BrT4zBaEko29ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk-ReY7oulyuvKSQrw1lgJElggGlo0d6indiH1U-tDwquw4tU_UXoQ_sj8OBo8XBUuWjuuFShqmLMP-0W59Vr6CaXdLrF8M3wFR4dUUhSf5UC4QCLaOMVP92lyh0OdtF_m_9Dt7lz-Wniod9zDrHeDsz_by570K3jL1VuDKTl_U1cJ0mzz_zDHGfOUf7VU1kVIs1WnM9SGvnm8YZURLTtMLMWx8-doGUE56Af_VfKjGDYW361OOIj9GmkyCFtaoCmTMIr5kgyeUSnB-IEhDlzujVrV6O9Mt7N4DagR6RGhT3g1viYLS4kO5YindU6dm3GIof1Q&key=YOUR_API_KEY

Скопируйте, вставьте этот URL-адрес в браузер и внимательно проверьте его.Также, пожалуйста, внимательно прочитайте URL-адрес документации.Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...