[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4. リンクの追跡

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=Following+Links"
"wget/リンクの追跡"へのコメント(無し)

再帰的な回収で不必要なデータの回収になることを望む人はいません.ほとん どいつも,ダウンロードしたいものとWgetにたどらせたい特定のリンクのみを, ユーザは正しく覚えています.

例えば,`fly.srk.fer.hr'から音楽のアーカイブをダウンロードしたい 場合,アーカイブの曖昧な部分の参照から生じる,全てのホームページのダウ ンロードを望みません.

たどりたいリンクを正確に調整することを可能とする,いくつかのメカニズム がWgetにはあります.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4.1 ホストをまたぐ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=Spanning+Hosts"
"wget/ホストをまたぐ"へのコメント(無し)

Wgetの再帰的な回収は,通常はコマンドラインで指定されたものと異なるホス トを訪れることを拒否します.これはデフォルトで妥当です.そうしない場合, 全ての回収で,Wgetがgoogleの縮小版になり得ます.

しかし,異なるホストを訪れたり,ホストをまたぐことが役に立つオプ ションとなる時もあります.画像が異なるサーバから提供されているかもしれ ません.三つのサーバ間の内部リンクでページ構成されているサイトのミラー リングしているかもしれません.サーバが二つの等価な名前を持ち, HTMLページが両方を交替しながら参照しているかもしれません.

あらゆるホストをまたぐ---`-H'

`-H'オプションはホストをまたぐことを開始し,そのため,リンクで参 照されている全てのホストを訪れながら,Wgetの再帰的な回収が可能となりま す.再帰の制限の基準が適切な深度に指定されていない限り,これらの外部の ホストは通常更に多くのホストにリンクされていて,Wgetはあなたが考えてい たものより遥かに多くのデータを終りまで吸い上げ続けます.

特定のドメインだけまたぐように制限する---`-D'

`-D'オプションを用いてたどるドメインを指定でるようになり,そのた め,これらのドメインに所属しているホストのみ再帰的に扱うよう制限されま す.`-H'と組み合わせることでのみ,明確な意味があります.典型的な 例として,`images.server.com'からのダウンロードを許可しながら `www.server.com'の内容をダウンロードするなどです.

 
wget -rH -Dserver.com http://www.server.com/

カンマで分けられたリスト,例えば`-Ddomain1.com,domain2.com'で,一 つ以上のアドレスを指定することが可能です.

特定のドメインをダウンロードから除外したままにする---`--exclude-domains'

指定から外したいドメインがある場合,`--exclude-domains'で行うこと が可能で,それは`-D'の引数と同じ形式を受け入れますが,リストアッ プされた全てのドメインを除外します.例えば, `sunsite.foo.edu'以外の`foo.edu'ドメインの,全てのホストをダ ウンロードしたい場合,以下のようにすることで可能です.

 
wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu \
    http://www.foo.edu/



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4.2 ファイルの形式

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=Types+of+Files"
"wget/ファイルの形式"へのコメント(無し)

ウェブから資料をダウンロードするとき,特定のファイル形式のみを回収する ように制限したいときもよくあります.例えば,GIFをダウンロードする ことに興味がある場合,ポストスクリプトのドキュメントでの負荷は嬉しいは ずが無く,逆もまたそうです.

Wgetはこの問題を扱う二つのオプションを提案します.それぞれのオプション で,短い名前,長い名前,そして`.wgetrc'内の等価コマンドをリストアッ プします.

`-A acclist'
`--accept acclist'
`accept = acclist'
`--accept'オプションの引数は,Wgetが再帰的な回収の間にダウンロー ドするファイルの,接尾子やパターンのリストです.接尾子はファイルの終り の部分で,"通常の"文字列,例えば`gif'や`.jpg'から成り立ち ます.パターンマッチはシェルのワイルドカードを含んでいて,例えば, `books*'や`zelazny*196[0-9]*'です.

そして,`wget -A gif,jpg'を指定すると,Wgetは`gif'や `jpg'で終るファイルのみ,すなわちGIFとJPEGをダウンロー ドします.一方,`wget -A "zelazny*196[0-9]*"'は,`zelazny'で 始まり,その中に1960から1969までの数字を含むファイルのみをダウンロード します.パターンマッチの動作方法についての記述はシェルのマニュアルを探 してください.

もちろん,任意の数の接尾子とパターンをカンマで分けたリストで組み合わせ ることや,`-A'の引数として与えることが可能です.

`-R rejlist'
`--reject rejlist'
`reject = rejlist'
`--reject'オプションは`--accept'と同じように動作しますが,そ の論理は否定です.Wgetは,リストの接尾子(やパターン)にマッチするもの 以外の,全てのファイルをダウンロードします.

そして,扱いにくいMPEGと.AUファイル以外の,ページ全体をダウ ンロードしたい場合,`wget -R mpg,mpeg,au'を使用できます.同様に, `bjork'で始まるファイル以外全てをダウンロードするため,`wget -R "bjork*"'を使用してください.引用符はシェルによる展開を妨げるためで す.

`-A'と`-R'オプションは,回収するファイルでより良い調整を達成 するために組み合わせることができます.例えば,`wget -A "*zelazny*" -R .ps'は,名前の一部に`zelazny'を持ち,ポストスクリ プトではない全てのファイルをダウンロードします.

これら二つのオプションは,HTMLファイルのダウンロードで,効果が無 いことに注意してください.Wgetは全てのHTMLをリンク先を知るために ロードする必要があります---再帰的な回収は,そうしなければ意味がありま せん.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4.3 ディレクトリベースの制限

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=Directory%2DBased+Limits"
"wget/ディレクトリベースの制限"へのコメント(無し)

他のリンクを追う能力にもかかわらず,ファイルがあるディレクトリをもとに して回収するファイルの制限を行なうことが役に立つときも良くあります.こ れには多くの理由があります---ホームページは合理的なディレクトリ構造に 組織化されている可能性があります.また,いくつかのディレクトリ,例えば `/cgi-bin'や`/dev'といったディレクトリは,無用な情報を含んで いる可能性があります.

Wgetは,これらの要求を扱うために三つの異なるオプションを提案します.そ れぞれのオプションでは,短い名前,長い名前,そして`.wgetrc'内の等 価コマンドをリストアップしています.

`-I list'
`--include list'
`include_directories = list'
`-I'オプションは,カンマで分けられた回収に含めるディレクトリのリ ストを受け入れます.他のあらゆるディレクトリは単に無視されます.ディレ クトリは絶対パスです.

そのため,`http://host/people/bozo/'から`/people'ディレクト リのbozoの仲間へのリンクと`/cgi-bin'の偽りのスクリプトのみだどっ てダウンロードしたい場合,以下のように指定できます.

 
wget -I /people,/cgi-bin http://host/people/bozo/

`-X list'
`--exclude list'
`exclude_directories = list'
`-X'オプションは`-I'の正反対です---これは,ダウンロードから 除外するディレクトリのリストです.例えば,Wgetで`/cgi-bin' ディレクトリからのものをダウンロードしたくない場合,コマンドラインで `-X /cgi-bin'を指定してください.

`-A'/`-R'と同様に,これら二つのオプションは,サブディレクト リのダウンロードでより良く調整するため,組み合わせることが可能です.例 えば,`/pub/worthless'以外の`/pub'階層からの全てをロードした い場合,`-I/pub -X/pub/worthless'を指定してください.

`-np'
`--no-parent'
`no_parent = on'
最も単純な,ディレクトリを制限するためによく利用される便利な方法は,開 始より上の階層を参照するリンクの回収を許可しないことで,すなわ ち,親のディレクトリ等への上昇を許可しないことです.

`--no-parent'オプション(短いものは`-np')はこの状況で役に立ち ます.それを利用することで,今いる階層から出ないことを保証します.Wget を以下のようにして呼び出したとします.

 
wget -r --no-parent http://somehost/~luzer/my-archive/

これは,`/~his-girls-homepage/'や`/~luzer/all-my-mpegs/'へ参 照するものは参照するものをたどらないので安心できます.興味があるアーカ イブのみダウンロードされます.特に,それはより知的な方法でリダイレクト を処理するだけなので,`--no-parent'は`-I/~luzer/my-archive' に似ています.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4.4 相対的なリンク

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=Relative+Links"
"wget/相対的なリンク"へのコメント(無し)

`-L'が開始される時,相対リンクのみ回収されます.相対リンクは,こ こではウェブサーバのルートを参照しないものと定義します.例えば以下のリ ンクは相対的なものです.

 



以下のリンクは相対的ではありません.

 



このオプションを使用することで,`-H'を用いない場合でも,再帰的な 回収でホストをまたがないことを保証します.単純な状況では,リンクを変換 すること無く"正しく動作する"ダウンロードも可能になります.

このオプションは,おそらくそんなには役に立たず,将来のリリースでは削除 されるかもしれません.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

4.5 FTPリンクをだどる

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=wget-ja&node=FTP+Links"
"wget/FTPリンクをだどる"へのコメント(無し)

FTPの規則は,必要があって若干特殊になっています.HTMLドキュ メントのFTPリンクは参照の目的を含むことが多く,デフォルトでダウン ロードすることが不便なことがよくあります.

HTMLドキュメントからFTPへのリンクをたどらせるため, `--follow-ftp'オプションを指定する必要があります.そうすることで, FTPリンクは,`-H'の設定にかかわらずホストをまたぎます. FTPリンクがHTTPサーバと同じホストを示すことは滅多にないので, これは理にかなっています.同じ理由から,`-L'オプションはそのよう なダウンロードで効果がありません.一方,ドメインの受け入れ(`-D') と接尾子の規則(`-A'と`-R')は通常適用されます.

また,FTPディレクトリへのリンクをたどることは,再帰的回収以上では ないことに注意してください.


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]