man wget Linux

Makeコマンドを覚えたので詳しい書籍を読みたいと思い調べていると、O’ReillyのGNU Makeという書籍の電子版がGFDLに基づいてフリーで公開されているという情報を発見。

早速、wgetコマンドでファイルを一括ダウンロードしようとしたところ失敗しました。

原因や解決方法などを備忘録として残しておこうと思います。

 

スポンサードリンク

 

状況

オライリージャパン GNU make

O’Reilly Japan – GNU Make 第3版

公開されているPDFのURLは下のようになっています。

見ての通り、章毎に分割しPDFファイルとして公開されています。

失敗

次のwgetコマンドを実行すると一括ダウンロードに失敗しました。

試しにファイル単体でのダウンロードを試みると、こっちは問題なくダウンロードできました。

原因

lsコマンドで一括ダウンロードしたファイルを確認してみます。

4873112699ディレクトリ下をダウンロードしたつもりが「robots.txt」というファイルがダウンロードされています。

robots.txtを確認してみると、/libraryディレクトリが「Disallow=禁止」と書かれており、どうやらこれが原因のようです。

robots.txtについて今一度調べてみると、Googleのヘルプでは下記のように書かれています。

robots.txt ファイルはサイトのルートに配置するファイルで、検索エンジンのクローラにアクセスされたくないサイトのコンテンツを指定します。ファイル内の指示は、サイトにアクセスするクローラの動作に対し強制力はなく、サイトにアクセスするクローラへのディレクティブとして機能します。

Googlebot などの信頼できるウェブクローラは robots.txt ファイルの指示に従いますが、他のクローラも従うとは限りません。そのため、ウェブクローラから情報を継続して保護するには、サーバー上の非公開ファイルをパスワードで保護する方法など、他のブロック方法を利用することをおすすめします。

解決

GNU Wget 1.18 Manual: Robot Exclusionによると、robots.txtの設定を無効にするにはwgetの-eオプションを利用すると良いようです。

wgetコマンドのeオプションにrobots=offを渡すとrobots.txtで禁止されているファイルも一括ダウンロードされました。

1つ1つダウンロードするのは凄く手間で面倒なので、プログラムの自動処理は本当に便利ですね。

 


 

【Linux】wgetで一括ダウンロードができない時の原因と対処方法
Tagged on:     

コメントを残す