wgetでリンク切れチェック(for Windows)

| コメント(0) | トラックバック(0)


このエントリーをはてなブックマークに追加
サイトのリニューアルでリンク切れチェックをするのが面倒で、なんかそういうソフトを使おうかなとも思ったのですが、変なソフトを入れるのもアレだし、hostsでIP指定した開発環境のリンク切れチェックをする必要もあったので、wgetというものを初めて使ってみました。

wget とは、UNIXのコマンドラインで HTTP FTP 経由のファイル取得を行えるツールとのことですがUNIXなんて見たこともない僕は、for windowsを使用。

以下、Windowsユーザー向けに、セットアップ方法などのメモを残します。コマンドラインなんてしらないよーという初心者さんも大丈夫。そもそも僕もほとんど知らない。

インストール

何をどうすればよいのか、よくわからず1時間ぐらいインターネッツをグルグルしちゃってましたが、まずはWget for Windowsにアクセスし、「Binaries」と「Dependencies」の二つをダウンロードしてください。ほかは必要ないようでした。

両方解凍しまして、Dependencies/bin/の中に4つほど.dllファイルが入っていますので、これを、Binaries/bin/以下にぶちこんでください。コピーでも移動でもokです。

使うのはこのbinariesファイルの方なので、.dllファイルを入れたら、dependenciesファイルの方は破棄してokです。binariesファイルを適当なディレクトリに移動してください。ここでは、cドライブのルートディレクトリに置いたと仮定します。

コマンドプロンプトの使い方

コマンドプロンプトを立ち上げましょう。あの、プログラマが良く使っている、プログラマ専用っぽい雰囲気の真っ黒な画面です。windowsからPCに触り始めた人には非常に敷居が高いですねぇ。

場所がわからなければ、スタートボタンから、プログラムの検索で、「コマンド」とでも入力すればすぐに出てきます。

ちなみに、「コマンド プロンプト」という名前らしく、「コマンドプロンプト」とスペースなしで検索すると出てこないですね、、、知らなかった。。。(by windows7)

windowsはマウスなどを操作することでOSに命令を出しますが、コマンドプロンプトでは、文章で命令を書きます。

とりあえず、ディレクトリを移動するという命令を書いてみましょう。

Windowsなら、マウスでフォルダをクリッククリックですが、コマンドプロンプトでディレクトリを移動するには、コマンドプロンプトに「cd」から始まる命令文を書きます。

ルートディレクトリに移動するには、黒い画面に、臆することなく

cd /

と入力してエンターキーをたたいてみてください。たぶんcドライブに移動できます。

cd /wget

と入力してエンターキーをたたけば、cドライブにある、先ほどおいたwgetフォルダに移動することができるでしょう。

実際に使うのは、/bin ディレクトリですので、

cd /wget/bin

と命令します。

wget/binディレクトリに移動できたら、最初の準備は終了です。


wgetへのコマンド入力

あとは、wgetを使った命令を直接入力します。

たとえば、

wget [url]

と入力すると、そのURL先のデータを、/binディレクトリ内にダウンロードしてくれます。

たとえば、このブログトップページであれば、実際には、

wget www.enjoy-com.com

と入力します。
ちなみに、最初のwgetで、binディレクトリの中に入ってるwget.exeを実行しています。

wgetでのリンク切れチェック

そんな感じで、いろいろなコマンドがあるのですが、リンク切れチェックは以下のように。

wget --spider --no-directories --recursive  --no-verbose [URL]


wget は普通に使うと、HTTP/FTP通信で、ファイルを取得するコマンドですが、いくつかのオプションをつけることで、リンク切れチェックに使えます。

使っているオプションコマンドの意味は以下の通り。

--spider:ファイルはダウンロードせずにファイルの存在有無を確認する
--no-directories:ディレクトリを作らない
--recursive: 関連する全てのウェブサイトを保存する
--no-verbose:コマンドによる動きを省略して報告する

また、大規模なサイトだと、延々とコマンドを実行し続けることになりますので、

--no-parent:親ディレクトリの階層をたどらない(指定したディレクトリ以下のファイルのみをたどる)
--level=depth:リンクをたどる深さ(回数)を指定。depthには数字を入力

といったオプションをつけることで、現実的なコマンドになると思います。

コマンドを実行していると、「unlink: No such file or directory」「No such file or directory」といった文章が流れることがありますが、これは気にしなくて良いようです。

最終的に、「●個の壊れたリンクを見つけました。」という報告と共に、デッドリンクとなっているURLが結果として返されますので、それをチェックすればOKということですね。

注意点がいくつか。

  • そもそもリンク切れをチェックするためのツールではないので、どのページのどのアンカーテキストのリンクが切れているのか、といったことはわかりません。デッドリンクになっているURLを元に、修正個所を特定する必要があります。
  • hostsファイルなどでIPを指定している場合は、その環境へアクセスしてくれますが、チェックするページはサーバに存在する必要がありますので、ローカルでのテストはできません。
  • 指定したドメインと同一のもののみを評価するようで、外部リンクのリンク切れは関知しません。
  • javascriptは実行しない

とまあいろいろ制約はあるものの、結構便利でした。

トラックバック(0)

トラックバックURL: http://www.enjoy-com.com/mt/mt5/mt-tb.cgi/851

コメントする

        

人気エントリー