リンクチェックって、手間ですよね。ほんと、手間ですよね。Movable TypeなどのCMS使っていればリンク生成はほとんど自動なので気にしなくていいのですが、通常のWEB制作だとリンクつけるのも手動なので、人為的ミスが発生しがちです。
前職でご一緒させていただいた jamadamさん謹製の「WWW-Crawler-Mojo」というツールがあります。このツールの機能の一つとして、リンクチェック機能が存在します。これ、本当に便利です。なにが便利って、スクリプトを走らせたら、あとは再帰的にリンクを辿ってくれすので、細かい設定などは気にせずに待てばいいだけ。ページ数少なくてもそこそこ時間がかかる(一つ一つリンクチェック)ので、その間は他の作業をして待っていましょう。
今回はWindows環境でやります。まずは、Perlが使えないといけないので、ActivePerlかStrawberryPerlをインストールします。今回はStrawberryPerlにしました。
StrawberryPerlのインストールは、インストーラ版ならダブルクリックでヒョイヒョイとインストールしていきます。通常のWindowsアプリを同じ感覚です。インストールが終わると、WindowsのメニューにPerl(command line)が表示されます。クリックして起動しましょう。
cpanがいくつか必要なので、コマンドを打ってインストールします。
cpan WWW::Crawler::Mojo
終わったらこちらも。
cpan IO::Socket::SSL
これで利用できる環境が整いました。
次は、以下のコマンドを打ちます。
perl ./example/checkbot.pl https://hogehoge/
checkbot.pl は、以下のzipを解凍してできたフォルダ内(WWW-Crawler-Mojo-master)にあります。
ダウンロードURL WWW-Crawler-Mojo
実行されると、標準出力で結果がツラツラと表示されていきます。とはいえ、標準出力だとあとが辛いので、ファイルに出力するようにしましょう。
perl ./example/checkbot.pl https://hogehoge > fugafuga.txt
出力の例はこんな感じ。すべてのリンクの結果が帰ってきます。
332: 404 occured! at https://www.hogehoge.jp/item.php <= https://www.hogehoge.jp/sitemap.html
基本的には、ステータスコードを検索をかけて、一つ一つ確認していくようになります。コマンド叩けば自動でここまでやってくれるので、だいぶラクちんです。
CIツールを使うともっと楽なのかもですが、企業ウェブサイトや小さなECサイトくらいだと、やはりCIの導入は敷居が高いです。リンクチェックだけなら、もっと気軽にできたほうがいいですしね。
このサイトは、エックスサーバー で運営しています。