Googleの検索結果を「はてなブックマーク数」でソートする

新人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