2012-06-15 11 views
8

Ubuntuでは、wgetを使用して(スクリプトから)ファイルをダウンロードしようとしています。 毎日このファイルをダウンロードし、hadoopクラスタにロードするプログラムをビルドします。wget not working

ただし、wgetは失敗し、次のメッセージが表示されます。

wget http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
--2012-06-16 03:37:30-- http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
Resolving www.nseindia.com... 122.178.225.48, 122.178.225.18 
Connecting to www.nseindia.com|122.178.225.48|:80... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
2012-06-16 03:37:30 ERROR 403: Forbidden. 

Firefoxと同等のURLを試してみると、うまく動作します。そして、はい、ライセンス契約には何か関係するものはありません...

私はwgetに関する基本的なものがありませんか?

+0

wgetを使用してそのデータをいつまで戻すことができますか?私はあなたがURL文字列を連結して各取引日のURLを構築していると仮定しますか?好奇心が強い。 –

+0

さて、NSEIndiaは2000年までデータが戻ってくると信じています... bSEIndiaは同様のサービスを提供しており、時間が経つにつれて戻る... – Gyan

答えて

12

wgetはデフォルトでは珍しいユーザーエージェントを使用するため、サイトブロックwgetはブロックします。 wgetの異なるユーザエージェントを使用するには、試してください。

wget -U Mozilla/5.0 http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 
+0

これは完全に真実ではありません。これは 'wget --help'に従ったユーザエージェント:Wget/VERSIONを持っています。 – Zagorax

+0

うわー、魅力のように働いた..ありがとう、トン。おそらく今野心的なのでしょうか?このwgetでは、* .zipやそれに類するものをしようとしているので、一種類のバージョンを取得することはできません。 – Gyan

+1

'wget --help'を試してみてください再帰的にダウンロードするオプションと、ダウンロードしたい拡張子をリストするオプションがあります。 – Zagorax

6

用途:

wget -U mozilla http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip 

いくつかのサイトは、単にファイルをダウンロードするためにwgetのユーザーエージェントを防ぎます。私はこのコマンドでこのファイルをダウンロードしました。できます。

0

他の技術のWebアプリケーションやWebサーバが使用できる「リファラー」コンテンツヘッダー値をチェックすることです。ユーザーエージェントの指定に加えて、referrer URLを指定する必要があるかもしれません。

例えば、

wget --referer http://freestockphotos.com/Scenery1.html http://freestockphotos.com/SKY/TreeSunset.jpg 

このホストは、「Scenery1.html」のページからナビゲートしながら、それらが行われていなかった場合は、対象ファイルの要求を拒否するように見えます。

2

私はcurl -O <URL>を使用しています。なぜなら、wgetはHTTPSやその他のプロトコルをサポートしていないからです。

0

一部のサイトでは、wgetユーザーエージェントがファイルをダウンロードしないようにしています。 wget -U 'Mozilla/5.0(X11; U; Linux i686; en-US; rv:1.8.1.6)Gecko/20070802 SeaMonkey/http://yourURL.com