0

我正在尝试创建一个程序(在 python 中),它将输出查询 Google 的本地搜索并将结果打印到控制台。我希望能够搜索“伦敦咖啡馆”并在屏幕上打印公司名称地址和电话号码。我在以下位置找到了一个易于使用的用于 Google 地图和本地搜索 API 的 Python 包装器:

http://py-googlemaps.sourceforge.net/#googlemaps-methods

包装器本质上以 JSON 格式返回数据,但它似乎只返回可用数千个结果中的 32 个结果。我的问题是如何访问更多?

该代码执行以下操作:

url = query_url + encoded_params
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
return (url, json.load(response))

这导致网址:

/local?q=cafe+near+London&start=0&rsz=large&v=1.0
/local?q=cafe+near+London&start=8&rsz=large&v=1.0
/local?q=cafe+near+London&start=16&rsz=large&v=1.0
/local?q=cafe+near+London&start=24&rsz=large&v=1.0        

.. 和 JSON 格式的数据 url 的不同之处在于 'start=' 值以 8 为增量递增。但是,当替换 start=32 时出现错误。结果的最大数量似乎锁定在总共 32 个。我该如何超越呢?

提前感谢您的所有帮助

4

2 回答 2

1

Google 只允许 4 页上的 32 个。您获得的 URL 用于分页。检查此链接

http://code.google.com/apis/maps/documentation/localsearch/devguide.html

并使用 ctrl-F 在该页面上搜索 “没有办法获得更多”

于 2011-12-27T23:13:17.363 回答
0

您确定您对 Google API 的使用符合 TOS 吗?我不是律师,但我记得不允许保存或重复使用结果。

话虽如此,还有另一种方法。你可以只筛选结果。并不是说我当然会推荐这种非法活动。这样你就可以使用这样的 url 查看结果:

http://www.local.google.com/?q=café+in+London&start=0
http://www.local.google.com/?q=café+in+London&start=10
http://www.local.google.com/?q=café+in+London&start=20
http://www.local.google.com/?q=café+in+London&start=30

等等

在任何情况下,结果数都以这种方式限制为 160。

于 2011-12-28T09:56:46.410 回答