wgetのオプションを覚えた

wget -rで再帰的にクロールできるのはみんな知っていると思うけども、同一サーバ内にクロールの必要ない対象があるので特定パス以下だけをクロールしようと思って-npをつけた。

  -np, --no-parent                 親ディレクトリを取得対象にしない

そしたら、CSSが別途/style/common.cssとかにあったのでレイアウトが崩れてしまった!それをどうやって解決したかというのが今回の日記のお話。

単純にwget http://example.com/style/common.css とかやるとカレントディレクトリにcommon.cssを作ってしまう。そこでまずは-x

  -x,  --force-directories        ディレクトリを強制的に作る

次に、-rでクロールした側が元から相対パスになっててくれたら必要ないんだけど、今回の場合src="/style/common.css"とかになっていたのでこのままではリンク切れになってしまう。-rの時に-kも一緒に指定しておく必要がある。

  -k,  --convert-links      HTML や CSS 中のリンクをローカルを指すように変更する

というわけで少し手間取ったけど、無事にMDNのJavaScriptのところだけ綺麗な形で手元に保管することができました。めでたしめでたし。