Webサービスサイトのリンク切れチェック

Webサービスを提供する場合にすべてのサイトの状態を手動でチェックすることは非常に大変です。そういった場合に自動試験を利用することで手間と時間と費用を削減するにおいて効果的です。
今回は、簡単なWebサービスのリンク切れチェックについ記載します。

数十のWebサービスサイトに対して、スクレイピングを行いました。
スクレイピングは、Webサービスサイトの全てに対して、リンク先(例えば<a>タグで記述したURL)や画像を対象にエラーが発生しないことの確認を行いました。

言語は、Pythonで、Reqests/Beautifulを利用します。
流れは以下の通りです。実際のコードを書いてみると百数十行程度です。

①与えられたURL内のHTMLから<a>タグや<img>タグなどのタグを検索し、URLを抽出します。
②抽出したURLのサイトがリンク切れでないかを確認します。
 リンク切れの場合は、その情報を出力します(ファイルが良いと思います)
③リンク切れ出なければ、①に対して新たなURLを与えます(再帰呼び出し)

この処理を繰り返し実行させることで、リンク切れがあった箇所が分かります。

注意点としては、以下の様な対応が必要です。
・同じURLの場合は処理をしないようにする
・外部ドメインのサイトには遷移しないようにする(リンク切れのみチェック)
・再帰呼び出しの実行階層を制限する
・インターバルを入れる

(その他の注意)
今回は、自前のWebサービスにおけるリンク切れですので、ロボットによるアクセス禁止は考慮不要ですが、他社サービスをアクセスする場合は考慮が必要となります。

本記事にたいする質問やお問合せ・IT改善のご相談はこちら