得る-np
親ディレクトリからファイルをインポートすることを無効にするオプションがあります。似ていますが、より柔軟なものが必要です。考慮する:
www.foo.com/bar1/bar2/bar3/index.html
私はすべてを取得したいのですがbar2
(!)「より高い」(ツリー階層で)以上を得ることはできません。だからbar2
それも持って来る必要がありますが、そうではありませんbar1
。
wgetをもう少し選択的にする方法はありますか?
背景:私は同様の論理構造(始点、上、下)を持つWebサイトをミラーリングしたいと思います。このレイアウトに適した他のツールがある場合はwget
お知らせください。
修正する
または、可能なアップ深度を指定しない場合は、「この URL またはその URL と一致しない限り、親エントリがない可能性があります」。
アップデート2
サーバーにはいくつかの構造があります。そうですか?木のように考えてください。したがって、通常「--no-parent」を使用すると、A 点から始まり、下に下がります。
私の願いは上に上がることができます。 X ノードを許可するか (100% 同じ) ノード B (距離 BA = X) まで許可するように表現されます。
すべての場合において、下降ルールはカスタム状態のままになります(たとえば、Yレベルにのみ下降)。
どのように保存しますか?実際、これは実際には問題ではありません。wget
サーバー構造はデフォルトで再生成されるため、ここでは恐れたり修正したりすることはありません。したがって、2つの言葉で言うと、いつものようになります。
アップデート3
次のディレクトリ構造 - 各ディレクトリにR - R.htmlなどのファイルが1つしかないとします。もちろん、複数のページを持つことができるので簡単です。
R
/ \
B G
/ \
C F
/ \
A D
/
E
A(A.html)は始点であり、X = 2です(したがって、Bは私が得たい最上位ノードです)。この特定の例では、R.htmlとG.htmlを除くすべてのページをインポートすることを意味します。 A.htmlは「開始点」と呼ばれます。〜しなければならないBではなくBから始めてください。
アップデート4
アップデート3以降、命名が使用されます。
wget オプション www.foo.com/B/C/A/A.html
問題は、ディレクトリB以下からすべてのページを取得するオプションが何であるかです(A.htmlから始める必要があることがわかります)。
答え1
まだ試していませんが、-Iと-Xを使用すると、目的の結果が得られます。私の最初の試みは次のようになりました。
wget -m -I bar1/bar2 -X "*" http://www.foo.com/bar1/bar2/bar3/index.html
オプションの説明:
-m:
--mirror
Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets
infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l
inf --no-remove-listing.
-I: list
--include-directories=list
Specify a comma-separated list of directories you wish to follow when downloading. Elements of
list may contain wildcards.
-X: list
--exclude-directories=list
Specify a comma-separated list of directories you wish to exclude from download. Elements of list
may contain wildcards.
答え2
URLに最後の/を追加する必要があります。そうでなければ、欲しいものを手に入れることはできません。
すべてを手に入れたいならwww.myhostname.com/somedirectory構文は次のようになります。
wget -r -nH http://www.myhostname.com/somedirectory/
何が起こるのか試してみるか、見ることには終わりはありません。それから/で試してください。
答え3
私の考えでは正しいここへの答えは--no-parent
オプションです。
-np
--no-parent
Do not ever ascend to the parent directory when retrieving recursively.
This is a useful option, since it guarantees that only the files below
a certain hierarchy will be downloaded.
答え4
たぶん私が何かを見逃しているかもしれませんが、それがあなたが望むものなら
wget -c -np -r www.foo.com/bar1/bar2
私のために動作します(あなたの例を使って)。もちろん、これらのオプションを使用すると、上記のすべてのディレクトリ構造を上から下にインポートすることもできますwww.foo.com
。bar2
最高レベルに到達したい場合は、
wget -c -np -r -nH --cut-dirs=1 www.foo.com/bar1/bar2
-nH
削除www.foo.com
して--cut-dirs=1
削除すると、現在のディレクトリとそのサブディレクトリにダウンロードbar1
されます。bar2
詳細はman wget
読みやすく、例が含まれています。