特定のWebサイト(その特定のドメイン内のすべてのページ)を、そのWebサイトがリンクしているすべてのページ(サイト全体ではない)をミラーリングする必要があります。
私はこれを行う方法について混乱しています
wget -r --level=inf
(または他のバリアント)はサイトをミラーリングします。
wget -r -H --level=1
は(すべてのドメインからの)すべてのリンクを最初のレベルに取得します。
メインサイト全体と1つのレベルを外部サイトに深く浸透させるために、これらをどのように組み合わせることができるかについて、誰もがアイデアを持っています。私は午後中ずっとマニュアルに頭をぶつけてきました。
ありがとう
残念ながら、これはwgetでは不可能です(そしてこれを-H -l 1
で解決しようとしても、期待したことはできません)。必要なのは HTTrack です。
httrack --ext-depth=1 http://example.com
これは、httrack %e1 http://example.com
と略記することもできます。 HTTrackは、0ではなく1から始まるレベルをカウントするため、深さを増やさない限り、外部ページにあるリンクをたどらないことに注意してください。
組み合わせを使用しますwget -m -k -K -p http://example.com && wget -r -k -K -H -N -l 1 http://example.com
。
2つのコマンドについて:wget -m -k -K -p http://example.com
はそれをミラーリングし(-m = -r --level = inf -N)、リンクをローカルミラーに変換し(-k)、変換される前に元のファイルをバックアップし(-K)、すべての前提条件をダウンロードします。ミラーの適切な表示(-p)。
その後、2番目のコマンドwget -r -k -K -H -N -l 1 http://example.com
は基本的に同じことを行いますが、すべてのホストにまたがる1つのレベルに対してのみ実行され、タイムスタンプを-Nでチェックするため、同じファイルを再度ダウンロードすることはありません。 -pオプションはダウンロードできるので、ここには含めませんでした...