我正在尝试使用Google地图服务的Python客户端来使用Places API提取地点列表。
以下是GitHub页面:https://github.com/googlemaps/google-maps-services-python 以下是文档页面:https://googlemaps.github.io/google-maps-services-python/docs/2.4.4/#module-googlemaps.exceptions
在.places def中,我需要以字符串格式输入page_token才能获得下一个10个列表。当我运行下面的代码时,它一直显示INVALID_REQUEST
这是我的代码:
places_result = gmaps.places(query="hotels in Singapore", page_token='')
for result in places_result['results']:
print(result['name'])
try :
places_result = gmaps.places(query="hotels in Singapore", page_token=places_result['next_page_token'])
except ApiError as e:
print(e)
else:
for result in places_result['results']:
print(result['name'])
答案 0 :(得分:6)
好的,经过数小时的试验和错误。我注意到我需要添加一个time.sleep(2)才能使它工作。我不确定为什么但它有效。
失败了time.sleep(1),time.sleep(2)及以上将解决问题。
希望有人可以了解背后的原因。
这是我的代码,用于检索地方并转到下一页直到结束。记得要更换 1.你的关键在这里你的钥匙'和 2.您要搜索的字符串'搜索某些内容'。
import googlemaps
import time
gmaps = googlemaps.Client(key='YOUR KEY HERE')
def printHotels(searchString, next=''):
try:
places_result = gmaps.places(query=searchString, page_token=next)
except ApiError as e:
print(e)
else:
for result in places_result['results']:
print(result['name'])
time.sleep(2)
try:
places_result['next_page_token']
except KeyError as e:
print('Complete')
else:
printHotels(searchString, next=places_result['next_page_token'])
if __name__ == '__main__':
printHotels('SEARCH SOMETHING')