Google将API放在Python中

Google将API放在Python中,python,google-maps,google-api,Python,Google Maps,Google Api,我正在使用python中的GooglePlacesAPI查找城市/城镇/地方(作为位置)中的任何内容(作为查询)。以下是我的代码片段: from googleplaces import GooglePlaces, types, lang YOUR_API_KEY = 'xxxx' google_places = GooglePlaces(YOUR_API_KEY) query_result = google_places.text_search( query='Play S

我正在使用python中的GooglePlacesAPI查找城市/城镇/地方(作为位置)中的任何内容(作为查询)。以下是我的代码片段:

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个,而谷歌地图在同一个查询中返回的结果超过20个。如何检索所有结果

编辑:我添加了最后3行代码以尝试在下一页上获得结果,但出现无效的\u请求错误

谢谢你阅读我的问题

默认情况下,每个邻近搜索或文本搜索最多返回20个 每次查询的建立结果;但是,每次搜索都可以返回 多达60个结果,分为三页。如果你的搜索可以 返回20个以上,则搜索响应将包括 附加值-下一页\u标记。传递 下一个\u page\u token指向新搜索的pagetoken参数,以查看 下一组结果。如果下一个\u页面\u标记为空,或不为空 返回,则没有进一步的结果。有一个短暂的延迟 在下一个\u页面\u令牌发出和将成为 有效的在下一页可用之前请求下一页将返回 无效的\u请求响应。正在使用相同的命令重试请求 下一页\令牌将返回下一页的结果

检查此url:

添加PagerToken作为HTTP请求url的附加参数,如下所示

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。干杯

默认情况下,每个邻近搜索或文本搜索最多返回20个 每次查询的建立结果;但是,每次搜索都可以返回 多达60个结果,分为三页。如果你的搜索可以 返回20个以上,则搜索响应将包括 附加值-下一页\u标记。传递 下一个\u page\u token指向新搜索的pagetoken参数,以查看 下一组结果。如果下一个\u页面\u标记为空,或不为空 返回,则没有进一步的结果。有一个短暂的延迟 在下一个\u页面\u令牌发出和将成为 有效的在下一页可用之前请求下一页将返回 无效的\u请求响应。正在使用相同的命令重试请求 下一页\令牌将返回下一页的结果

检查此url:

添加PagerToken作为HTTP请求url的附加参数,如下所示

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。干杯

我发现出了什么问题。系统正在抛出无效的\u请求,因为下一个\u页面\u令牌无效(在下一个\u页面\u令牌发出和生效之间有一个小的延迟b/w)。我编译了代码的前半部分(不包括最后三行),然后编译了最后三行,它成功了!!因此,据我所知,延迟是导致错误的原因

所以现在我要做的就是在最后一个if条件之前放置一个1-2秒的计时器


感谢所有评论和回答这个问题的人。你们是这个社区的英雄

我发现出了什么问题。系统正在抛出无效的\u请求,因为下一个\u页面\u令牌无效(在下一个\u页面\u令牌发出和生效之间有一个小的延迟b/w)。我编译了代码的前半部分(不包括最后三行),然后编译了最后三行,它成功了!!因此,据我所知,延迟是导致错误的原因

所以现在我要做的就是在最后一个if条件之前放置一个1-2秒的计时器


感谢所有评论和回答这个问题的人。你们是这个社区的英雄

阅读文档@。默认情况下,每个邻近搜索或文本搜索每个查询最多返回20个建立结果。如果搜索返回的值超过20,则搜索响应将包含一个附加值-
next\u page\u token
。将
next_page_token
的值传递给新搜索的
pagetoken
参数,以查看下一组结果。我尝试写入此内容,但系统抛出了无效的\u请求。。。。。。。。。。。。。。。。。。。。。如果query_result.has_next_page_token:query_result_next_page=google_places.text_search(pagetoken=query_result.next_page_token)读取文档@。默认情况下,每个邻近搜索或文本搜索每个查询最多返回20个建立结果。如果搜索返回的值超过20,则搜索响应将包含一个附加值-
next\u page\u token
。将
next_page_token
的值传递给新搜索的
pagetoken
参数,以查看下一组结果。我尝试写入此内容,但系统抛出了无效的\u请求。。。。。。。。。。。。。。。。。。。。。如果query\u result.has\u next\u page\u token:query\u result\u next\u page=google\u places.text\u search(pagetoken=query\u result.next\u page\u token)感谢您的回答。我尝试包含pagetoken,但在无效的\u请求中被抛出。我已经在注释中包含了我上面问题下面的代码。@DoItRightNow,您需要用您的值更改pageToken值,并在url末尾添加您的\u api\u键。页面标记值在您从google获得的数据有效负载上。是的,这是有意义的。但问题是我如何在我的剧本中做到这一点?下面的代码行抛出错误:query\u next\u page=google\u places.text\u search(pagetoken=query\u result.next\u page\u token)我尝试了你所说的,它确实给了我一个浏览器中的位置列表。我需要能够使用我的script.dude将查询结果包装成一个条件,只要值是pageToken有效。并修改文本搜索功能以连续调用下一页。我没有看到你的代码。我不太清楚w