そういえばtree-tipsのサイトマップxmlを作ってなかったので、作る事にしました。
まだページも少ないので手動で作ろうかとも思いましたが、
せっかくなのでlocalhostをクロールしてリンクを収集しようとしました。
Seasar2 - S2Robot 概要
同じくseasarプロダクののFess は、
内部でsolrとs2robotを組み合わせて使ってるそうです。Fess凄い。
以下、ざっくり使ったみた感想です。
- diconファイルで設定できるし、javaでも設定できる、一体どっちで設定するのがいいか迷う。
- デフォルトのXPathTransFormerは機能が足りなすぎて使えない。
- 標準で並列処理できるのは素晴らしい。
本当は負荷かけても全く構わない自分のサイトのlocalhostに向けて、
1ページだけクロールし、そのページからアンカーリンクを取得してhrefの値を収集。
それをサイトマップxmlとして使用、という事を標準機能だけでやりたかったんですが、
XPathでaタグの「ラベル」は取得できますが、
属性であるhrefが取得できず。。。(単に取得方法を知らないだけかも)
あと、クロールするページのURL(localhost)のフィルタ(正規表現で可能)はできても、
クロールしたページ内のパース処理のフィルタ(headタグは無視とか)はできないようです。
処理的に激しく無駄なので省きたいです。
結局XPathTransFormerを参考に、HtmlTransformerを継承したSitemapTransformerを作りました。
なんか本来のクロールの使い道とは違う気がしますが、
初めてのクローラ作成と、サイトマップxmlの自動生成+ping送信までできました。