0

クエリ Google のローカル検索を出力し、結果をコンソールに出力するプログラムを (Python で) 作成しようとしています。「ロンドンのカフェ」を検索して、会社名の住所と電話番号を画面に表示できるようにしたいと考えています。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))

その結果、次の URL が生成されます。

/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 の違いは、8 ずつ増加する 'start=' 値です。しかし、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 に答える