新人SEの小沼です。
「あるテーマについてどんなページが人気あるんだろうか? 人気順に見てみたい」
そう思ったことはありませんか?
Googleなどで検索を行えば、それの近似値を得ることはできます。
ただそれはあくまでもGoogleのアルゴリズムで高い評価を受けた順であって、必ずしも人から高い評価を受けた順ではありません。
そこで、純粋に「人による評価」のランキングを見てみたいと思い、こんなものを作ってみました。
はてブ数の順番で検索結果を表示する
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi
上記は、Googleで行った検索結果を、「はてなブックマークでブックマークされた数」の順番でソートして表示するというものです。
内部的には、はてな検索をスクレイピングして、その結果を並びかえて表示するということをしています。
はてな検索
http://search.hatena.ne.jp/
※はてな検索では、Googleによる検索を利用しています。
例えばこんな検索ができます。
・「Ruby」について書いてあるページで、最もブックマークされているのはどこ?
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=ruby
・「筋肉」について書いてあるページで、最もブックマークされているのはどこ?
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=%B6%DA%C6%F9
さらに、Googleの特殊構文を利用するとこんな検索もできます。
・"www.ark-web.jp"内にあるページで、最もブックマークされているのはどこ?
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=site%3Awww.ark-web.jp
・TITLEタグに「Ruby」と書いてあるページで、最もブックマークされているのはどこ?
http://okra.ark-web.jp/~konuma/cgi-bin/search.cgi?keyword=intitle%3Aruby
ただし、制限事項として
・はてなの検索画面を10ページ分もスクレイピングしているので遅い
・ランキングの対象となるのが「はてなの検索結果の上位100件まで」なので、それより下のページは無視される
という点があります。
プログラムの中身に興味のある方は、Sandbox Wikiの方に詳しく書いてありますので、そちらのほうを参照していただけると幸いです。
・はてなのブックマーク数順で検索結果を表示する
https://www.ark-web.jp/sandbox/wiki/194.html