[Seasar-user:21692] S2RobotでリダイレクトURLと元ページの関連性の取得について
kubo
[E-MAIL ADDRESS DELETED]
2013年 8月 16日 (金) 17:27:47 JST
久保(jflute)です
S2Robotの利用を検討していまして、
ちょっと確認したいことがあります。
/A/, /B/, /C/ という三つのURLが存在するとして、
/A/ の画面の中に /B/ というURLへのリンクがあって、
でも、/B/ にアクセスすると /C/ にリダイレクトする
という構造になっているとします。
/A/ - (リンク) /B/ -> (リダイレクト) /C/
すると、ACCESS_RESULT に、
- - - - - - - - - - - -
| URL | PARENT_URL
| /A/ | null
| /C/ | /B/
- - - - - - - - - - - -
という形で登録されるかと思いますが、
A と B の関連が取得できないかなぁと。
(要は、C は A から参照されているという情報)
A のクロール結果を頑張って辿ればいけるかもしれませんが、
できればテーブルのリレーションだけでいけないかなと思い、
追っかけてみたのですが、現状では無理なのかなと。
URL_QUEUEは一時的なので終わったら消えてしまいますし。
ということで、S2RobotThread を拡張して、
(S2ClassBuilderを使って +.dicon でオーバーライド)
storeChildUrl()をオーバーライドして、
CrawlingParameterUtilのスレッドローカルから、
/A/ を取得して /C/-/B/ との関連情報を、
別途独自のテーブルに保存するようにしてみました。
これでなんとか想定したデータは取得できているようですが、
ちょっと強引さが否めないので、フィードバックも兼ねて、
他に良い方法がないかどうかを確認したいと考えましたが、
いかがでしょうか?
#
# DBFluteを内部で使って頂いてるので、
# ログ見れば何やってるのかわかりやすくて良いですね(^^。
#
Seasar-user メーリングリストの案内