SQL Server 2008で全文検索/XMLで検索/OpenXML で考えていたら思いついた。
ブログ検索って、HTMLを解析したり文章を解析したり(多少はいるけど)はあまり必要ないのでは?
最近のブログの場合 rss が貼ってあるのが普通なので、これをXMLで解析するだけで余分な広告やらアフリエイトやらを読み込まずに済む。もっとも、ブログ自身にアクセスさせるように(アクセス数を稼ぐとか、アフリエイト利用として)するために「続きを読む」が多いわけだけど、それはそれで再度取り直しをすれば良い。
この方法を取れば、がっつりとブログ記事をクローリングして、目的/興味にマッチした検索結果を得られることができるのでは?
なぞと夢想してみました。
ここに至るまでの発想の過程(シミュレーション)はこんな感じです。
1.とあるアルファブログで、ある本の評判を見つけた。
2.べた褒めなんだけど、本当にそうかわからない。
3.ひとまず、amazon で表紙を確認した。
4.著者のほかの作品も確認した。まぁ、これならよさそう。
5.amazon で評判を確認した。ちょっと負な意見もあるなぁ。
6.じゃあ、他の書評ではどうなんだろう?
7.google 書名だけで検索すると、amazon やら book1st しか出てこない。
8.書評サイトで検索したけど、なんか、一言感想とか、amazon へのリンクしか出てこない。
9.面倒だなぁ、なんかこう、うまくマッチする方法はないだろうか?
以下は、妄想
10.書名/著者について、うまいリンクなり評判なりが出てきた。
11.うまいことに、アフリエイトオンリーのブログが省かれている。
12.うまいことに、amazon や book1st へのリンクも外れている。
13.うまいことに、良し悪し、両方の評判がのっている。
14.まぁ、これなら買ってもよさそうかな。
15.いや、これと似たようなので、もっといいのがありそうだ。
16. 10番へ繰り返し。ぐるぐるぐる。
なんて感じで購買には関与しないのですが(図書館で借りるという手もありますしね)
というサイト/データがあれば良かろうと妄想したわけです。
google のキーワード検索、予想キーワードの組み合わせは、非常に便利なのですが、ランキングの関係で書評を検索しようとすると必ず書店がランクの上にあがってしまいます(商業主義だから当然だけど)。
あと、ブログ検索をするときに HTML から抽出するにせよ、そんなにブログのパターンはありません。自作の場合は別でしょうが、たいていは無料のブログか、個人のサイトであっても OSS を使っているだろうから抽出パターンは限られています(このあたりは、google の全文検索よりもかなり楽なはず)。
クラウド関係の本が売れている/売れていない、みたいですが↓は結構面白かったです。
分散ストレージ/検索エンジンのあたりが非常に参考になります(概念的には単純というところがいい)。
SPIDERING HACKSはご覧になりました?
http://www.amazon.co.jp/Spidering-hacks%E2%80%95%E3%82%A6%E3%82%A7%E3%83%96%E6%83%85%E5%A0%B1%E3%83%A9%E3%82%AF%E3%83%A9%E3%82%AF%E5%8F%96%E5%BE%97%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF101%E9%81%B8-Kevin-Hemenway/dp/4873111870
この本はHTMLの構造になってない構造wをPerlで解析して
自分に有用な情報を取ってくる方法が載ってました。
(言語は何でもいいのですが)
RSS部分だけ、というのは、この本のときには無かったかも
しれませんが。。
これを読んでActive Perlを入れてみたんですが、USERAGENTを
使ったくらいで止まってます。。
覧になっておりませんでいた Thx ^^; そうか、だから最近 IIS のログを見ていると spider という単語をよく見かけるのか。perl で spilder というモジュールが存在するのですね。
発端は「モノ」を検索しているのに「モノ」の購入方法は出てくるけど「モノの評判」は出てこない、というイライラなのです。後は、情報にならないブログ。ブログ検索も検索の幅が広がり過ぎて(カテゴリが多すぎて)目的なものに辿りつかない。結局、昔懐かしのリンク集かブックマーク(お気に入り)が最適なのか。まぁ、このあたりは「人が処理できる情報量を超えてはいけない」に反した作りになっているのが問題なのかなぁ、と考えてたりします。
ブログに対するクローリング(スパイダリング)については、自作するつもりだったけど spider を試してみようかな。いま、考えていたのは、
– 日本の主要な無料ブログの新着を見張っておく。
– 新規ブログに対してクローリング(wgetかrss)
– ブログ解析は各ブログアプリに依って自作(30種程度で済む)
– 興味がなかったら(利用価値がなかったら)クロールから外す。
– 1日1回クローリング、更新がなければ週1回とか更新を伸ばす。
主要キーワードなんかは、
– ブログのタイトルから単語抽出
– ニュースサイトのタイトルから単語抽出
ってな感じで。人が作ったタイトルのほうが、内容を表している(要約されている)しね。
クロールして必要な情報を取ってくることをspideringというらしいです。
Perlはライブラリが超充実していて、UserAgentというクラスは、
ブラウザ同等の動きをしてくれました。
もちろん、取得結果を画面に表示する必要はないので、あとは内々に
処理して、、、という感じです。
更新してるかどうかも、HTMLヘッダを見たりなどなど小回りの利く
感じです。