wget -r -nd --delete-after http://whatever.com/~popular/page/
‘-r’オプションは再帰的に回収し,‘-nd’はディレクトリを作成しま せん.
‘--delete-after’がローカルマシンのファイルを削除することに注意して ください.例えばそれは,リモートのFTPサイトに‘DELE’コマンドを発行 しません.また‘--delete-after’が指定されたとき,‘.orig’ファイ ルが単純に最初の位置に作成されないため,‘--convert-links’が無視さ れることにも注意してください.
それぞれのリンクは二つの方法のうちの一つで変換されます.
例:ダウンロードされたファイル/foo/doc.htmlが /bar/img.gifにリンクしていて,それもダウンロードされている場合, doc.html内のリンクは‘../bar/img.gif’を示すものに変更されま す.この種の変換は,ディレクトリの任意の組合せで信頼できるように動作し ます.
例:ダウンロードされたファイル/foo/doc.htmlが, /bar/img.gif (または../bar/img.gif)へリンクしている場合, doc.html内のリンクはhttp://hostname/bar/img.gifを示 すものに変更されます.
このため,ローカルでの閲覧が信頼できるように動作します.リンクされてい るファイルがダウンロードされている場合,リンクはそのローカル名を参照し ます.それがダウンロードされていない場合は,リンクは存在する壊れたリン クではなく,その完全なインターネットアドレスを参照します.前のリンクが 相対リンクに変換されるという事実は,ダウンロードされた階層を別のものに 移動することを確実に可能にします.
ダウンロード後のみ,Wgetはリンクがダウンロードされたことを知ることがで きます.そのため,‘-k’が行う仕事は,すべてのダウンロード終りに実行 されます.
通常は,単一のhtmlページをダウンロードするとき,正しく表示するのに 要求される可能性のある,必要なドキュメントも全くダウンロードされません. ‘-l’を用いた‘-r’オプションの使用は役に立つはずですが,Wgetは 外部とインラインドキュメントを通常区別するので,通常は失われた必要なも のとなる“leaf documents”として残ったままです.
例えば,1.gifを参照する<IMG>
タグと,外部ドキュメント
2.htmlを指し示す<A>
タグを含む,ドキュメントを考えます.
2.htmlは似ていますが,その画像2.gifでそのリンクは
3.htmlとします.この繰り返しは,任意の,より大きい数字まであると
します.
以下のコマンドを実行したとします.
wget -r -l 2 http://site/1.html
すると,1.html,1.gif,2.html,2.gif,そし て3.htmlはダウンロードされます.見てお分かりのように,再帰を停止 する場所を決定するために,Wgetは,1.htmlからのホップの数(を2 ま で) しか数えないので,3.htmlにはそれが必要とする3.gif が ありません.しかし,以下のコマンドを用いたとします.
wget -r -l 2 -p http://site/1.html
それは,上記のすべてのファイルおよび3.htmlが必要とする 3.gifがダウンロードされます.同様に,以下のようにします.
wget -r -l 1 -p http://site/1.html
これで,1.html,1.gif,2.html,そして2.gif がダウンロードされます.このように考えることもできます.
wget -r -l 0 -p http://site/1.html
これは,1.htmlと1.gifのみをダウンロードすると思われますが, ‘-l 0’は‘-l inf’—すなわち無限再帰—と等価なので,残念なが らそうなりません.単一のhtmlページ(または,コマンドラインや ‘-i’ url入力ファイルで指定された少数のもの)とその(またはそれ らの)必需品をダウンロードするために,単に‘-p’と‘-l’のみ残して ください.
wget -p http://site/1.html
Wgetは,‘-r’が指定されたかのように動作しますが,単一のページとその 必需品のみダウンロードされることに注意してください.外部ドキュメントへ のリンクはだとりません.実際,単一のページとその必需品を(たとえ別のウェ ブサイトに存在していても)ダウンロードするためと,ひとまとまりで正しくロー カルに表示することを保証するために,この作者は,‘-p’に加えていくつ かのオプションを使用することを好みます.
wget -E -H -k -K -p http://site/document
このトピックの終りになりますが,外部ドキュメントへのリンクだとWgetが考
える方法は,<A>
タグ,<AREA>
タグ,または,<LINK
REL="stylesheet">
以外の<LINK>
タグで指定されているあらゆるURLが
そうであると考えるという方法です.
仕様書によると,htmlのコメントは,sgmlの宣言 (declarations)として表現されています.宣言は‘<!’で始まり‘>’ で終る‘<!DOCTYPE ...>’のような特別なマークアップで,それには ‘--’分離子の組の間にコメントを含めてもかまいません.htmlのコ メントは“'空の宣言”で,それはコメントのテキストが無いsgmlの宣言 です.このため,‘<!--foo-->’は有効なコメントで,‘<!--one-- --two-->’もそうですが,‘<!--1--2-->’はそうではありません.
一方,ほとんどのhtml作者は,コメントの理解として‘<!--’と ‘-->’で分離されたテキストとして以上のものはなく,それは同じもので はありません.例えば,‘<!------------>’のようなものはダッシュの数 が四の倍数になっている限り有効なコメントとして動作します(!).そうでない 場合,コメントは技術的には,次の‘--’がない限り最後まで続き,それは ドキュメントの最後まで行ってしまうかもしれません.このため,多くの有名 なブラウザは,仕様書を無視し,ユーザが期待したように実装されています. コメントは‘<!--’と‘-->’で分離されています.
バージョン1.9までのWgetはコメントを厳密に解釈していて,結果として多くの 洗練されているブラウザでは表示される,多くのWebページへのリンクが失われ ていて,準拠していないコメントを含むものが不幸にも残っていました.バー ジョン1.9からは,“ネイティブ”のコメント,つまりそれぞれのコメントは最 初に‘-->’が見つかると終端されたものとして実装されたクライアントの 仲間入りを成し遂げました.
何らかの理由があって,厳密なコメントとする字句解析を行ないたい場合,こ のオプションを使用して,それを開始して下さい.