2011-12-19 22 views
0

多くのデータをジオコードするようにしています。負荷を分散させるためのマシンをたくさん用意しています(1日あたりのIPアドレスあたり2,500リクエストを超えることはありません)。私はwgetかcURLのどちらかでリクエストを作るためにスクリプトを使っています。しかし、wgetとcURLの両方が同じ「要求拒否」メッセージを生成します。つまり、私はブラウザからリクエストを行うと、それは完全に動作します。例えば、要求は次のとおりです。端末からGoogleのジオコーディングAPIへのリクエストを送信する

wget http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true 

そして、出力結果は次のようになります。

[1] 93930 
05:00 PM ~: --2011-12-19 17:00:25-- http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA 
Resolving maps.googleapis.com... 72.14.204.95 
Connecting to maps.googleapis.com|72.14.204.95|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [application/json] 
Saving to: `json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA' 

    [ <=>         ] 54   --.-K/s in 0s  

2011-12-19 17:00:25 (1.32 MB/s) - `json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA' saved [54] 

それだけに書いたファイルが含まれています

{ 
    "results" : [], 
    "status" : "REQUEST_DENIED" 
} 

すべてのヘルプははるかに高く評価されます。

答えて

3

アドレスとセンサーのパラメータを区切る '&'文字は、wgetコマンドに渡されるのではなく、代わりにバックグラウンドでwgetを実行するようにシェルに指示しています。結果のクエリに必要な「センサー」parameterがありません。入力に基づいてtrueまたはfalseに設定する必要があります。

wget "http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false" 
+0

いいえ、私が書いたものを上にスクロールする必要はありません。それは '&sensor = true'と書かれています – Mason

+0

問題をよりよく反映するように答えを更新しました。 &文字はbashにとって特別です。 – bamnet

関連する問題