Python& Google Places API |想要在特定的位置获得所有餐厅

时间:2016-08-24 13:19:39

标签: python python-3.x google-places-api google-places

我想通过使用python 3.5获取伦敦的所有餐厅,使用Google Places API获取模块googleplaces。我在这里阅读了googleplaces文档并进行了搜索,但是我没有得到它。到目前为止,这是我的代码:

from googleplaces import GooglePlaces, types, lang

API_KEY = 'XXXCODEXXX'

google_places = GooglePlaces(API_KEY)

query_result = google_places.nearby_search(
    location='London', keyword='Restaurants',
    radius=1000, types=[types.TYPE_RESTAURANT])

if query_result.has_attributions:
print query_result.html_attributions


for place in query_result.places:
    place.get_details()
    print place.rating 

代码不起作用。如何获得该地区所有餐厅的清单?

3 个答案:

答案 0 :(得分:4)

如果您放弃keyword参数,types已经搜索了餐馆,那会更好。

请记住Places API(与其他Google Maps API一样)不是数据库,它不会返回所有匹配的结果。实际上只返回20,你可以得到额外的40左右,但就是这样。

如果我正确阅读GooglePlaces,您的代码将发送API请求,例如:

http://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.507351,-0.127758&radius=1000&types=restaurant&keyword=Restaurants&key=YOUR_API_KEY

如果你只删除keyword参数,它就像是:

http://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.507351,-0.127758&radius=1000&types=restaurant&key=YOUR_API_KEY

差异很微妙:keyword=Restaurants会使API匹配结果,在其名称,地址等中包含“餐馆”一词。其中一些可能不是餐馆(并将被丢弃),而另一些实际的餐馆可能没有“餐馆”这个词。

答案 1 :(得分:1)

尝试按纬度和经度更改城市价值,并且没有必要放置关键字,因为您已指定在类型上尝试将此代码设置为适合我:

query_result = google_places.nearby_search(
        lat_lng={'lat': 46.1667, 'lng': -1.15}, 
        radius=5000,
        types=[types.TYPE_RESTAURANT] or [types.TYPE_CAFE] or [type.TYPE_BAR] or [type.TYPE_CASINO])

答案 2 :(得分:0)

唯一缺少的是错误提示,括号()。您的代码应为

if query_result.has_attributions:
    print (query_result.html_attributions)