Google Local Search API + Python

时间:2011-12-27 23:03:52

标签: python ajax json urllib2 google-local-search

我正在尝试创建一个程序(在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。我该如何超越它?

提前感谢您的所有帮助

2 个答案:

答案 0 :(得分:1)

Google只允许4页中的32页。您获得的URL是分页。检查此链接

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

并搜索 “使用ctrl-F

在该页面上无法获得更多

答案 1 :(得分: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

在任何情况下,结果编号都是这样限制的。