リンクチェッカー(Webのリンク切れ確認)

最終更新日:2006年04月12日

はじめに

概要

Webのリンク切れを確認するためにリンクチェッカーをいくるか使ってみたので整理しておく。
ここでは、 について詳細に説明する。

確認したリンクチェッカー


以下のツールを確認してみた。

サイトのリンクチェック

名称 言語 出力例 感想
Checkbot Perl HTML 複数サイトの同時チェックも行えてなかなか良い。
チェック結果の統計情報がもう少し充実しているともっと良いと思う。
LinkChecker Python text, HTML 結構良いんだけど、確認した環境(Windows 2000 + Python 2.4.1)では何故か大文字を含むディレクトリの下はチェックしてくれなかった。
それから、日本語はURLエンコードされてしまう。
W3C Link Checker Perl online version チェック間隔を1秒以下に設定出来ないので、チェックがものすごく遅い。

ページのリンクチェック

名称 環境 感想
LinkChecker Firefox拡張機能 Firefoxで表示しているページのリンクチェックを行い、結果を色分けして表示してくれる。
簡単にチェックできて見易いのでちょっとした確認には便利。

Checkbot のインストールと使用方法


サイトのリンクチェックツールである Checkbot の環境構築から使用方法までの説明。

必要な環境

Checkbot は Perl で書かれているので、Perl および以下の CPAN が必要
名称 備考
Perl 5 version 5.8 推奨
LWP 5.76 libwww-perl 5 module
HTML::Parser 3.33
URI 1.10 libwww-perl も依存
Net::FTP 2.58 libnet package に含まれる
Mail::Send 1.03 --mailto オプションを使用する場合に必要。MailTools package に含まれる
Time::Duration レポートで経過時間を見る場合に必要。
MIME-Base64 libwww-perl が依存
HTML-Parser libwww-perl が依存
Digest-MD5 libwww-perl が依存
Compress-Zlib libwww-perl が依存
Crypt::SSLeay libwww-perl でSSLをサポートする場合に必要

※ 一般的に、最新バージョンの使用を推奨

Perl のインストール

Perl のサイトや各OSのパッケージ配布サイトからパッケージを入手してインストールする。

CPAN のインストール

CPANモジュールの環境を設定後、cpan shell からインストール
# perl -MCPAN -e shell

cpan > install モジュール名

もしくは、モジュールのソースを入手して
$ perl Makefile.PL
$ make
$ make test
# make install

Checkbot のインストール

Checkbot のCPANモジュールを入手して展開後
$ perl Makefile.PL
$ make
# make install

文字化け対策

標準のままだとブラウザで表示した時に日本語が文字化けしてしまうので、Checkbot のソースをちょっと変更
$ cd /usr/local/scripts
$ diff checkbot checkbot.orig
936,937c936
<     #print OUT "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
<     print OUT "<?xml version=\"1.0\"?>\n";
---
>     print OUT "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
1279,1280c1278
<   #print SERVER "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
<   print SERVER "<?xml version=\"1.0\"?>\n";
---
>   print SERVER "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";

以上で Checkbot の環境構築完了。
以下は Checkbot の使用方法の説明。

Checkbot のヘルプ

$ /usr/local/scripts/checkbot -h
Checkbot 1.77 command line options:

  --cookies          Accept cookies from the server
  --debug            Debugging mode: No pauses, stop after 25 links.
  --file file        Use file as basis for output file names.
  --help             Provide this message.
  --mailto address   Mail brief synopsis to address when done.
  --noproxy domains  Do not proxy requests to given domains.
  --verbose          Verbose mode: display many messages about progress.
  --url url          Start URL
  --match match      Check pages only if URL matches `match'
                     If no match is given, the start URL is used as a match
  --exclude exclude  Exclude pages if the URL matches 'exclude'
  --filter regexp    Run regexp on each URL found
  --ignore ignore    Ignore URLs matching 'ignore'
  --suppress file    Use contents of 'file' to suppress errors in output
  --note note        Include Note (e.g. URL to report) along with Mail message.
  --proxy URL        URL of proxy server for HTTP and FTP requests.
  --internal-only    Only check internal links, skip checking external links.
  --sleep seconds    Sleep this many seconds between requests (default 0)
  --style url        Reference the style sheet at this URL.
  --timeout seconds  Timeout for http requests in seconds (default 120)
  --interval seconds Maximum time interval between updates (default 10800)
  --dontwarn codes   Do not write warnings for these HTTP response codes
  --enable-virtual   Use only virtual names, not IP numbers for servers
  --language         Specify 2-letter language code for language negotiation

Options --match, --exclude, and --ignore can take a perl regular expression
as their argument

Use 'perldoc checkbot' for more verbose documentation.
Checkbot WWW page     : http://degraaff.org/checkbot/
Mail bugs and problems: checkbot@degraaff.org

Checkbot の使用例1

とりあえずチェックしてみるには、
$ /usr/local/scripts/checkbot http://www.check.site/

上記コマンドを実行すると、カレンドディレクトリに以下のファイルが出来る
ファイル名 内容
checkbot.html チェック結果のメインレポート
checkbot-www.check.site.html http://www.check.site/ のチェック結果

※ しかし、これでは表示が見辛いので、Checkbot の出力例cssファイルを参考にしてcssファイルを作成し、スタイルシートを指定(--style オプション)する事をお勧めする。

Checkbot の使用例2

以下の条件を設定してチェック コマンドの実行例
$ /usr/local/scripts/checkbot
    --style checkbot.css
    --proxy http://192.168.1.1:3128
    --verbose
    --internal-only
    --match "^(http\:\/\/www2\.check\.site\/|http\:\/\/www\.check\.site\/)"
    http://www.check.site/ > log.txt 2>&1 &
(実際は1行)

上記コマンドを実行すると、カレンドディレクトリに以下のファイルが出来る
ファイル名 内容
checkbot.html チェック結果のメインレポート
checkbot-www.check.site.html http://www.check.site/ のチェック結果
checkbot-www2.check.site.html http://www2.check.site/ のチェック結果
log.txt checkbotコマンド実行時のメッセージ

LinkChecker(Firefox拡張機能)


Firefox で表示しているページのリンクチェックを行う LinkChecker の説明。

LinkChecker のインストール

Firefox で
LinkChecker - Firefox link validator extension for web developers
にアクセスし、Firefoxの拡張機能としてインストールする。

LinkChecker の使用方法

Firefox でチェックしたいページを表示後、 のどちらかを行う。
リンクチェックが始まり、チェックの進捗状況がステータスバーの右側に表示される。
チェックが完了したリンクから順番に色が変わって行く。

LinkChecker の結果表示

リンクチェックが完了したリンクは以下の色で識別される。