めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

wget でサイトミラー

※ 参考情情報 : Webミラーサイト作成キット

wget 一つで既存 Web サイトのミラーサイト構築できるかな? wget はオプションが多すぎて挫折気味です。。。。
が!いろんな方に情報いただいてだいぶ使えるようになりました。ポイントをメモしておきます。

まず、wget は 1.12 以降を使用します。これより前のバージョンは CSS の解釈が下手で CSS からインポートしている CSS をダウンロードできなかったりします。

ミラーサイトを作る目的の場合に指定するとよいオプションは以下の通り。

オプション 説明
-p, --page-requisites ページを適切に表示するために必要な関連ファイルを取得する。
-r, --recursive 再帰的に取得する。
-l, --level 再帰の深さ(1 以上)を指定。0 は無限に再帰する。
-k, --convert-links リンクの URL をミラー先をポイントするように修正する。
-K, --backup-converted URL 修正前のファイルを保存する。
-N, --timestamping 修正があったファイルのみを再取得する。

特に、-k を指定する場合は、同時に -K を指定しないと、-N によるタイムスタンプ比較がうまく機能しない場合があります。

-r を指定しない時は、指定ページのみを取得します。-p を付加することで、そのページを表示するために必要な画像ファイルなどを追加で取得します。-r を指定した場合は、-l N で N クリック先の画面まで取得します。

その他、環境に応じて設定してもよいオプションは以下の通り。

オプション 説明
-nH, --no-host-directories ダウンロード場所にホスト名のディレクトリを作成しない。
-np, --no-parent 開始点より上位の URL は取得しない。
-D, --domains=LIST 取得するドメインをコンマ区切りで指定する。
--exclude-domains=LIST 取得しないドメインをコンマ区切りで指定する。
-S, --server-response サーバの応答を表示する。

ミラー元のサーバに robots.txt があってミラーできない場合、-e robots=off で robots.txt を無視することができます。(ミラー元の許可を得てからやるようにしましょう。)