Я пытаюсь получить все заведения типа ресторана в определенном месте в заданном радиусе, используя запрос python к API Google Places.Вот мой простой код:
import requests
import json
APIKEY = "AIzaSyBFx8hqftDOlrSWRTiOSowjwfeS1OQtBpw"
def findPlaces(loc=("51.1079","17.0385"),radius=3000, pagetoken = None):
lat, lng = loc
type = "restaurant"
url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location={lat},{lng}&radius={radius}&type={type}&key={APIKEY}{pagetoken}".format(lat = lat, lng = lng, radius = radius, type = type,APIKEY = APIKEY, pagetoken = "&pagetoken="+pagetoken if pagetoken else "")
print(url)
response = requests.get(url)
res = json.loads(response.text)
print(res)
for result in res["results"]:
info = ";".join(map(str,[result["name"],result["geometry"]["location"]["lat"],result["geometry"]["location"]["lng"],result.get("rating",0),result["place_id"]]))
print(info)
pagetoken = res.get("next_page_token",None)
return pagetoken
pagetoken = None
while True:
pagetoken = findPlaces(pagetoken=pagetoken)
if not pagetoken:
break
Тем не менее, даже несмотря на то, что он работает хорошо для первой страницы результатов, он не может попасть на вторую страницу без видимой причины (он просто возвращает INVALID REQUEST из API),Более того, что интересно, поскольку я печатаю свой URL-адрес в консоли, я могу следовать этому очень конкретному URL-адресу, просто щелкнув по нему, и когда я это сделаю, он работает отлично, API возвращает желаемый список ресторанов.
Я подумал, что это проблема со строками кодирования для URL, и я заменил формат на urlencode python, однако - результат остался прежним.Поскольку у меня заканчиваются идеи, я спрашиваю: кто-нибудь как-то связан с такой проблемой?
Заранее благодарен за любую помощь.