[Seasar-user:21703] Re: S2RobotでリダイレクトURLと元ページの関連性の取得について
kubo
[E-MAIL ADDRESS DELETED]
2013年 8月 27日 (火) 00:05:17 JST
久保(jflute)です
> S2Robot
> 0.5.8-SNAPSHOTで対応してみました。
取り急ぎ、うまく動作したようです。
ちょっと詳細は(実際に試して検討している)
別の方から別途メールさせて頂きますね。
2013/8/22 kubo <dbflute @ gmail.com>:
> 久保(jflute)です
>
> 菅谷さん、ありがとうございます。
> こちらで取り込んで確認中です。
> 確認報告が来週になってしまいそうですが、
> また連絡いたします。
>
>
> 2013/8/21 Shinsuke Sugaya <shinsuke @ yahoo.co.jp>:
>> 菅谷です。
>>
>> 0.5.8-SNAPSHOTで対応してみました。
>> 自動リダイレクトするかどうかのHTTPステータスを
>> diconで渡せるようにしました。
>>
>> 参考になるように
>> https://www.seasar.org/svn/sandbox/s2robot/trunk/s2robot-seo
>> を久々に手直ししてみました。
>> s2robot_client.diconでredirectHttpStatusPatternを
>> 適当なパターンにしていただければ良いかと
>> 思います。標準では、子リンク->親リンクの関係は
>> AccessResultで取得できるかと思いますが、
>> 親リンク->小リンクの関係を保持するのであれば
>> 独自のTransformerを作る必要があるかと思います。
>> サンプルとして、CustomTransformerを追加しましたが
>> dicon的にはs2robot_transformer.diconに定義をして
>> s2robot_rule.diconで適用されるように設定します。
>> CustomTransformerでは親リンク->小リンクを
>> ログしているだけですが、データを永続化するのであれば、
>> ResultDataのdataとして保持することになるかと
>> 思います。
>>
>> よろしくお願いいたします。
>>
>> shinsuke
>>
>> 2013年8月18日 23:14 kubo <dbflute @ gmail.com>:
>>> 久保(jflute)です
>>>
>>> 菅谷さん、ありがとうございます。
>>> ちょっと特殊な要件で申し訳ありませんが、
>>> 要はリンク構成も取得したい、というところですね。
>>>
>>> BやCのクロール自体は後回しでもいいのですが、
>>> Aのサイトのリンク構成だけをうまく取得できるような
>>> 仕組みがあるとうれしいかもですね。
>>>
>>> もしくは、単純に S2RobotThread 周りを
>>> 拡張しやすくして頂くだけでもありがたいです。
>>> (今はスレッドローカルから無理矢理取得してたり)
>>> 結構、あのクラスの処理をフックしたくなるので。
>>>
>>> ひとまず現状ではやりたいことはなんとか実現できているので、
>>> 開発はこれで進めていきますね。(ちょと開発期間が短いもので)
>>> S2Robot側で改善がされたら(時期許せば)ぜひ取り込みたいと。
>>>
>>>
>>>
>>> 2013/8/18 Shinsuke Sugaya <shinsuke @ yahoo.co.jp>:
>>>> 菅谷です。
>>>>
>>>> フィードバックいただきありがとうございます。
>>>> 現状、300台のときにリダイレクト先を取得できれば
>>>> 取得して、処理せずに次のクロールに回してしまって
>>>> いるので、リダイレクトするときも処理できるように
>>>> カスタマイズ可能にすることを検討します。少々お待ち
>>>> ください。
>>>>
>>>> よろしくお願いいたします。
>>>>
>>>> shinsuke
>>>>
>>>>
>>>>
>>>> 2013年8月16日 17:27 kubo <dbflute @ gmail.com>:
>>>>> 久保(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 mailing list
>>>>> Seasar-user @ ml.seasar.org
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>> _______________________________________________
>>>> Seasar-user mailing list
>>>> Seasar-user @ ml.seasar.org
>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>> _______________________________________________
>>> Seasar-user mailing list
>>> Seasar-user @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>> _______________________________________________
>> Seasar-user mailing list
>> Seasar-user @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内