Next: , Previous: Invoking, Up: Top


3 再帰的なダウンロード

GNU Wgetは,Web(または,単一のhttpftpサーバ)の部分を,リン クとディレクトリ構造をたどりながら渡り歩くことができます.これは再 帰的な回収(recursive retrieval),または再帰(recursion)と呼ばれま す.

http urlを用いると,Wgetは与えられたurlすなわちドキュメ ントから得たhtmlを,hrefsrcのようなマークアップを 通じて,htmlドキュメントが参照しているファイルを回収しながら,回収 と解析を行ないます.新たにダウンロードされたファイルもtext/html 形式やapplication/xhtml+xml形式の場合も,それは解析され更に続け ます.

httpの再帰的な回収とhtmlの内容はbreadth-firstです.これ は,要求されたhtmlドキュメントをWgetが最初に,その後でドキュメント がリンクしているドキュメントを,そして更にそれがリンクしているドキュメ ントというようにダウンロードすることを意味します.言い替えると,Wget は 最初に深さ1のドキュメントをダウンロードし,それから深さ2のものというよ うにして最大深度で指定されたものまでダウンロードするということです.

回収が下降する最大の深度(depth)は,‘-l’オプションで指定され ます.デフォルトの最大深度は5階層です.

ftp urlを再帰的に回収するとき,Wgetはリモートサーバの与えられ た(指定された深度以上のサブディレクトリを含め)ディレクトリツリーから, 全てのデータを回収し,ローカルにミラーイメージを作成します.ftpの 回収もdepthパラメータで制限されます.httpの再帰と異なり, ftpの再帰は最初の深度で実行されます.

デフォルトで,Wgetはローカルディレクトリツリーを作成し,それはリモート サーバで見つかったものに対応しています.

再帰的回収は複数の応用が可能で,最も重要なものはミラーです.それは, wwwの公開と,その他の状況として,ネットワーク接続が遅いところでファ イルをローカルに保存することでバイパスすることで役に立ちます.

再帰呼び出しはネットワークを通じたデータの高速転送になるため,システム の過負荷を起こす可能性があることを警告します.このため,管理者の多くは それに難色を示していて,大量の内容物を高速にダウンロードしているのを検 出した場合,あなたのサイトからのアクセスを禁止するかもしれません. Internetサーバからダウンロードしている時,サーバへのアクセスの間の遅延 を導入するため,‘-w’オプションを使用することを考慮に入れてしてくだ さい.ダウンロードにはより長い時間がかかりますが,サーバ管理者はあなた の無礼には心配しなくなるでしょう.

もちろん,再帰的なダウンロードは自分のマシンにも問題を発生するかもしれ ません.調査無しで実行したままにする場合,ディスクが簡単にいっぱいにな るはずです.ローカルのネットワークからのダウンロードの場合,メモリと CPUの消費と同様に,システムの帯域幅にも注意すべきです.

ダウンロードを達成するような試みに適した基準を指定してみてください.1 ページのみダウンロードしたい場合,あらゆる再帰を追加すること無く ‘--page-requisites’を使用してください.一つのディレクトリ以下をダ ウンロードしたい場合,他のディレクトリからダウンロードすることを避ける ため‘-np’を使用してください.一つのディレクトリの全てのファイルを ダウンロードしたい場合,再帰深度が超過しないことを確実にするため ‘-l 1’を使用してください.これについての詳細はSee Following Links.

再帰的な回収は注意して使用すべきです.警告しなかったとは言わせません.