我正在尝试创建一个程序(在python中),该程序将输出query Google的本地搜索并将结果打印到控制台。我希望能够搜索“伦敦咖啡馆”,并将公司名称、地址和电话号码打印在屏幕上。我在上找到了Google Maps和Local Search 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))这就产生了urls:
/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 ..and JSON格式的数据urls中的差异是' start=‘值递增8。但是,当替换start= 32时,我得到一个错误。结果的最大数量似乎锁定在总共32个。我该如何超越这一点?
提前感谢你的帮助
发布于 2011-12-28 07:13:17
谷歌只允许在4页上使用32页。您得到的URL是用于分页的。检查此链接
http://code.google.com/apis/maps/documentation/localsearch/devguide.html
然后使用ctrl-F在该页面上搜索“没有办法获得更多”
发布于 2011-12-28 17:56:46
您确定您使用的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。
https://stackoverflow.com/questions/8650162
复制相似问题