概要
wgetの`-L`オプションは、再帰的ダウンロード(`-r`)と組み合わせて使用される場合、現在のドメイン内の相対パスリンクのみを追跡するように指示します。これは、Webサイトの特定のサブディレクトリや構造をミラーリングする際に、外部リンクによって不要なデータをダウンロードすることを防ぐ上で重要な役割を果たします。
主な特徴
- 相対リンクのみを追跡し、外部ドメインへの移動を防ぐ
- Webサイトの特定のセクションのミラーリングに適している
- 再帰的ダウンロード(`-r`)と組み合わせて使用すると強力な機能を発揮する
- 不要なデータダウンロードや帯域幅の浪費を防ぐ
主なオプション
`-L`オプションは単独で使用されるよりも、他の`wget`オプションと組み合わせて使用されるときにその真価を発揮します。
リンクの追跡とダウンロード
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`wget` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`-L`オプションを活用した`wget`の様々な使用例です。
相対リンクのみをたどって再帰的にダウンロード
wget -r -L -np http://example.com/docs/
指定されたURLから開始し、相対リンクのみをたどってWebサイトを再帰的にダウンロードします。親ディレクトリには移動しません。
ダウンロード後にリンクをローカル用に変換
wget -r -L -np -k http://example.com/docs/
上記の例と同様にダウンロードしますが、ダウンロードされたHTMLファイル内のリンクをローカルで動作するように変換します。
特定のディレクトリに保存
wget -r -L -np -k -P my_docs http://example.com/docs/
ダウンロードされたすべてのファイルを'my_docs'というディレクトリ以下に保存します。
ダウンロードの深さを制限
wget -r -L -np -l 2 http://example.com/docs/
再帰的ダウンロード時、開始URLから2段階の深さまでのみリンクをたどります。
ヒントと注意点
wget -L 使用時の役立つヒントと注意すべき点です。
効率的な使用のためのヒント
- **`--level`オプションの活用**: `-l`オプションで再帰的ダウンロードの深さを制限することで、不要なファイルダウンロードを防ぎ、無限ループを回避できます。
- **`--wait`および`--random-wait`**: サーバーに過負荷をかけないように、リクエスト間に待機時間を設けることをお勧めします。特に大規模なミラーリング時に有効です。
- **`--limit-rate`**: ダウンロード速度を制限することで、ネットワーク帯域幅を効率的に管理できます。
- **`--no-clobber`**: 既に存在するファイルを上書きしないようにすることで、中断されたダウンロードを再開したり、誤ってファイルを破損させたりするのを防ぎます。
注意点
- **サーバー負荷**: 過度な再帰的ダウンロードは、対象サーバーに負荷をかける可能性があります。`--wait`オプションを使用してリクエスト間隔を調整することをお勧めします。
- **robots.txtの遵守**: ほとんどのWebサイトは`robots.txt`ファイルでクローリングルールを明示しています。`--execute robots=off`オプションで無視できますが、これはWebサイトのポリシー違反となる可能性があるため、慎重に使用する必要があります。
- **無限ループの可能性**: 不適切なオプションの組み合わせは無限ループを引き起こし、システムリソースを消費する可能性があります。特に`-L`と`-r`を使用する際は、`-np`や`-l`オプションで範囲を明確に制限することが重要です。