5

它不在此处受支持的库下: https ://developers.google.com/api-client-library/python/reference/supported_apis

它只是不适用于 Python 吗?如果不是,它适用于什么语言?

4

3 回答 3

9

Andre 的回答为您指出了引用 API 的正确位置。由于您的问题是特定于 python 的,因此请允许我向您展示一种在 python 中构建提交的搜索 URL 的基本方法。在您注册 Google 的免费 API 密钥后,此示例将让您在几分钟内搜索内容。

ACCESS_TOKEN = <Get one of these following the directions on the places page>

import urllib

def build_URL(search_text='',types_text=''):
    base_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json'     # Can change json to xml to change output type
    key_string = '?key='+ACCESS_TOKEN                                           # First think after the base_url starts with ? instead of &
    query_string = '&query='+urllib.quote(search_text)
    sensor_string = '&sensor=false'                                             # Presumably you are not getting location from device GPS
    type_string = ''
    if types_text!='':
        type_string = '&types='+urllib.quote(types_text)                        # More on types: https://developers.google.com/places/documentation/supported_types
    url = base_url+key_string+query_string+sensor_string+type_string
    return url

print(build_URL(search_text='Your search string here'))

此代码将构建并打印一个 URL,搜索您在最后一行中输入的任何内容,替换“您的搜索字符串”。您需要为每次搜索构建其中一个 URL。在这种情况下,我已将其打印出来,以便您可以将其复制并粘贴到浏览器地址栏中,这将为您提供一个 JSON 文本对象的返回(在浏览器中),与您的程序提交该 URL 时所获得的相同。我建议使用 python requests库在您的程序中获取它,您只需获取返回的 URL 并执行以下操作即可:

response = requests.get(url)

接下来,您需要解析返回的响应 JSON,您可以通过使用json库对其进行转换来完成此操作(例如,查找json.loads)。通过 json.loads 运行该响应后,您将拥有一个包含所有结果的漂亮 Python 字典。您还可以将返回(例如从浏览器或保存的文件)粘贴到在线 JSON 查看器中,以便在编写代码以访问来自 json.loads 的字典时了解结构。

如果部分内容不清楚,请随时发布更多问题。

于 2013-12-31T19:45:39.113 回答
4

有人为 API 编写了一个包装器:https ://github.com/slimkrazy/python-google-places

基本上它只是带有 JSON 响应的 HTTP。它更容易通过 JavaScript 访问,但它同样易于使用urllib,并且json库可以连接到 API。

于 2014-02-21T03:00:46.903 回答
1

以西结的回答对我很有帮助,所有的功劳都归功于他。我必须更改他的代码才能使其与 python3 一起使用。下面是我使用的代码:

def build_URL(search_text='',types_text=''):
    base_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json'
    key_string = '?key=' + ACCESS_TOKEN
    query_string = '&query=' + urllib.parse.quote(search_text)
    type_string = ''
    if types_text != '':
        type_string = '&types='+urllib.parse.quote(types_text)
    url = base_url+key_string+query_string+type_string
    return url

更改是 urllib.quote 更改为 urllib.parse.quote 并且传感器被删除,因为谷歌正在弃用它。

于 2017-11-03T10:47:28.327 回答