wgetでWebの引っ越し

投稿: 2012年2月8日

あるサイトのコンテンツをまとめて別のサイトに移したいような場合、一番楽なのはたぶんrsyncとかでがばっと持って行くこと、という気がするけど、実はwgetを使うのがかなり楽ちんだということが分かった。たまにしかこういうことしないので、すぐにオプションを忘れてmanを通読することになるので、ここに覚え書き。

% wget -rpkK -l2 -nH --cut-dirs=1 http://www.example.com/top/

これで、そのページからリンクされているCSSや画像なんかも含めてごっそり手元に保存できる。ポイントは-r, -k, -p あたり。

-r: リカーシブにリンクをたどってくれる。 -l?でどれだけ深追いするかを指定できる。

-k: ファイル内のa, area, link要素のリンク先を適宜書き替えてくれる。 -Kでバックアップ作製。

-p: そのページを表示するのに必用なファイル群は必ず取得してくれる。 -lの指定ではじかれてしまうようなファイルも、必用があれば取得する。

-nHと--cut-dirsは、ファイルを保存する時にどのようなディレクトリに保存するかを指定するオプション。何もしていしないと、上の例の場合、./www.example.com/top/以下にファイルが保存され、-nHがあると./top/以下、-nHと--cut-dirs=1があるとカレント・ディレクトリーに保存される。

とりあえず -k の機能はかなり便利で、rsyncにはまねできない。きっともっとちゃんとmanを読むと、もっと便利なことがいろいろとあるんだろうけど、僕の用途ではこれで充分。