更新日の新しい順のリンク集

作成日:2003-04-12
最終更新日:

ホームページにはリンク集があるのが通例になっています。 たまに、なぜリンク集があるのか不思議になることがあります。 それぞれのページでハイパーリンクを張っておけばそれでいいのではないかと思うからです。 しかし、ページ作成者の考えを全体として表すリンク集は、 個々のページの文脈で必要なリンクと異なることも事実です。 そう思って、私もリンク集を用意しています。 リンク集をどのような基準で用意するかといえば、 自分が何度もそのリンクを使って見に行きたいと思うかだと思います。 自分のリンク集がそうなっているかどうかは、自信がありません。

何回も見に行きたくなる、そんなページとはどういう条件を満たしているのでしょうか。 一つ考えたのは、頻繁に更新されているページではないかということです。 これが一般に必要な条件だとは思いません。しかし、私が見に行きたくなるのは、 絶えずなにかしら新しい、できれば面白いことが得られるページです。 そのようなページは、どのようにして捜せるでしょうか。

中小企業診断士関係のリンク集を作ることにして、今述べた考えを実行に移すことにしました。 リンク集の元ネタは私自身がいろいろなところからかき集めたものを使います。 手順は次の通りです。

  1. 元ネタを集めたページを用意する
  2. 集めたページからハイパーリンクを抽出する
  3. 集めたハイパーリンクのヘダー情報を得る。ヘダー情報には最終更新日情報が入っている
  4. 最終更新日が新しい順にリンクを並び変える

まず、ハイパーリンクを指定して、ヘダー情報を表示させてみます。 典型的な例は次の通りです。

text/html 422 3132209488  Apache/1.3.27 (Unix)
第1列 ドキュメントの型(text/html )
第2列 ドキュメントの大きさ(バイト数)
第3列 ドキュメントの年齢(おそらく最終更新時刻のtime値表現)

第4列以降は慣例かもしれませんがWebサーバの種類が表示されるようです。

そこで、URL を指定して第3列のドキュメントの年齢を引き出し、 この年齢にしたがって整列させれば、目的を達することができます。 Perl の場合は、LWP::Simpleモジュールを使って、 head サブルーチンを呼び出します。

  use LWP::Simple
  $url = "http://www.ne.jp/asahi/music/marinkyo/index.html.ja";
  $modified_time = localtime((head($url))[2])
  print $modified_time #=>Sat Feb  3 11:37:04 2007

当初はこの方法をもとにリンク集を作っていました。 その後、Perl の代わりに Ruby で書き直しましたが、今は休止しています。 最終更新日を取りにいく手間を惜しんでいるためですが、 いずれは再開したいと思っています。

まりんきょ学問所Perl 手習い > 更新日の新しい順のリンク集


MARUYAMA Satosi