大規模サイトのリンク切れをチェックしたい
大量の HTML ページの外部 URL へのリンク切れを一括チェックできるツールを探しています。
こんなソフトはないものでしょうか…
なければ自作するかもしれません。
チェックするリンク元ページ
- ローカルディスクの特定ディレクトリ内にある HTML ファイルを一括チェック
- 指定された URL の Web ページを起点としてリンクを辿ってクロールしながらチェック
のいずれか、できれば両方指定できると有り難い。(CGI や PHP 等で動的に生成されるページのことを考えると、後者は欠かせないか?)
リンクとして扱う対象
<A HREF="..."> のリンクだけでなく、<IMG SRC="..."> や <BLOCKQUOTE CITE="..."> のようなもの、さらには <META HTTP-EQUIV="Refresh" CONTENT="XX;URL=..."> や CSS の @import "..." や url("...") 等、とにかく値として URL を取る物は全て対象としたい。
ページ内アンカー (<A NAME="...">, <X ID="...">) へのリンク切れも対象としたい。
結果として教えて欲しい情報
リンク先が存在するか否か、だけではなく、ステータスコード 40X 系で明らかにページが存在しないのか、30X 系でリダイレクトされているのか、それ以前に名前解決できなかったりサーバに接続できなかったりしているのか、が区別がつくようにして欲しい。
リンク先は存在している場合でも、先頭 1KB くらい GET して META Refresh で他のページに移動させられていないか確認してもらえるとベスト。
それぞれに重要度を示してほしい。
- <A HREF="..."> のリンク切れは最重要
- <IMG SRC="..."> や <LINK REL="StyleSheet" HREF="...">、<SCRIPT SRC="..."> も準最重要
- その他ステータスコード 40X 系は修正必須
- レスポンスコード 30X 系、50X 系、サーバ接続エラー等は要確認
- でも 〜/index.html が 〜/ に転送されてるのは軽視・または無視してもいい
という感じ。
さらに、実在するファイル一覧と照合して、「どこからもリンクされていないファイル・アンカー」を報告してくれると嬉しい
動作環境等
Linux や Solaris で動くことが望ましいが、無ければ Windows も妥協。
ン万ページ級の大規模サイトもチェック可能なように、全てをオンメモリで実行しようとしないこと
基本的にフリーウェアやオープンソースが希望だけど、なければ参考としてシェアウェアや商用の製品でも…
一度確認したページは結果をキャッシュして相手のサーバに迷惑をかけないこと。