Google本地搜索API + Python
我正在尝试创建一个程序(用Python编写),这个程序可以查询谷歌的本地搜索,并把结果打印到控制台上。我想搜索“伦敦的咖啡馆”,然后把公司名称、地址和电话号码显示在屏幕上。
我找到了一种简单易用的Python库,可以用来访问谷歌地图和本地搜索的API,链接在这里:
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格式的数据。网址中的区别在于'开始='的值,每次增加8。不过当我把开始值改成32时,就出现了错误。看起来最多只能获取32条结果。我该如何突破这个限制呢?
非常感谢大家的帮助!
2 个回答
0
你确定你使用谷歌API的方式符合服务条款吗?我不是律师,但我记得保存或重复使用结果是不被允许的。
不过,另外还有一种方法。你可以通过屏幕抓取的方式获取结果。当然,我并不推荐这种非法的行为。
这样你就可以通过这样的链接来查看结果:
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个。
1
谷歌只允许在四个页面上显示最多32个结果。你看到的链接是用来翻页的。可以查看这个链接
http://code.google.com/apis/maps/documentation/localsearch/devguide.html
然后在那个页面上用ctrl-F搜索 "没有办法获取超过"这句话。