wgetでリンクチェック

$ wget -r -p -nv -l 0 --delete-after -nd --spider \
 --domains=example.com www.example.com 2>&1 \
 | egrep -A100 '^Found .* broken links?\.$'

オプション--spider を指定すると、完了後に

Found 1 broken link.

http://www.example.com/img.gif referred by:
    http://www.example.com/index.html

のような結果表示をしてくれるようです。特に参照元がでるのはとても助かる。
(※複数のページから参照されているファイルがみつからない場合、参照元は一つだけしか表示されないみたい)


ただ、CentOS5では期待通り動くものの、Debianではうまく動かないようです。--spider、 --delete-after、-nd あたりの組み合わせがダメポ。あと結果表示もしてくれない。参照元を再度探すのは面倒。

メモ

-r
再帰ダウンロードを行う
-p
HTMLを表示するのに必要な全ての画像等も取得する
-nv
出力が冗長ではなくする
-l
再帰時の階層の最大の深さをNUMBERに設定する(0で無制限)
--delete-after
ダウンロード終了後、ダウンロードしたファイルを削除する。robots.txtは消さないみたい
-nd
ディレクトリを作らない
--spider
何もダウンロードしない
--domains
ダウンロードするドメインをコンマ区切りで指定する