无法获得超过20个数据的地方详细信息Gmaps地方信息API

问题描述

我是Python的新手,尤其是使用Gmaps API来获取地点详细信息。

我要搜索具有以下参数的地方:

places_result  = gmaps.places_nearby(location=' -6.880270,107.60794',radius = 300,type = 'cafe')

但实际上,我想获取特定纬度/经度和半径范围内的许多数据。因此,我尝试获取Google Api提供的新参数。那是page_token。这是文档的详细信息:

pagetoken -返回多达20个来自先前运行的搜索的结果。设置pagetoken参数将使用先前使用的相同参数执行搜索-除pagetoken以外的所有参数都将被忽略。 https://developers.google.com/places/web-service/search

因此,我尝试使用此功能获取更多数据(下一页数据):

places_result  = gmaps.places_nearby(location=' -6.880270,type = 'cafe')

time.sleep(5)

place_result = gmaps.places_nearby(page_token = places_result['next_page_token'])

这是我的整个输出功能

for place in places_result['results']:

my_place_id = place['place_id']

my_fields = ['name','formatted_address','business_status','rating','user_ratings_total','formatted_phone_number']

places_details = gmaps.place(place_id= my_place_id,fields= my_fields)

pprint.pprint(places_details['result'])

但是不幸的是,当我开始运行时,我只获得20个(最大)位置详细信息数据。我不知道页面标记参数的功能是否正确,因为输出的数据不能超过20个。

对于任何能给我提供解决问题建议的人,我深感感谢。非常感谢:)

解决方法

如文档here所述:

默认情况下,每个附近搜索或文本搜索每个查询最多返回20个建立结果;但是,每次搜索最多可以返回60个结果,分为三页。

因此,基本上,您当前正在经历的是预期的行为。在一个附近的搜索查询中,您无法获得20个以上的结果。

如果在发送您附近的第一个搜索查询时返回了next_page_token,则意味着第二页显示了结果。

要访问第二页结果,就像您所做的一样,您只需要发送附近的另一个搜索请求,但是这次使用pagetoken参数,并用{{1}设置其值}您是从第一个回复中得到的。

并且如果您附近的第二个搜索查询的响应中也存在next_page_token,则表示第三个( 和最后一个 )页面结果也是可用的。您可以使用访问第二页的相同方法来访问结果的第三页。

回到您的查询,我尝试了指定的参数,但只能得到9个结果。是否打算将next_page_token参数设置为仅300米?