KOMINE Masako
Komin****@mss*****
2012年 5月 13日 (日) 21:24:12 JST
小峯です。 もうしわけありません。 org.apache.commons.httpclient と org.apache.http を 見間違えていました。 あらためて > <logger name="org.apache.http"> > <level value ="debug" /> > </logger> を追加したところ、全てではありませんが content-typeがtext/plainで返ってきているリクエストがかなりの割合になりました。 子URLがクロールされない理由はまだ不明ですが、 まずは、Webアプリケーションの環境を調べてみようと思います。 ありがとうございました。 (2012/04/27 15:17), Shinsuke Sugaya wrote: > 菅谷です。 > >> jp.sf.fess, org.seasar.robot, org.seasar.robot.dbflute, jp.sf.fess.solr, >> org.apache.commons.httpclient > > Fess では HttpClient 4 を採用しているので、パッケージは > org.apache.http を指定する必要があります。 > webapps/fess/WEB-INF/classes/log4j.xml に > > <logger name="org.apache.http"> > <level value ="debug" /> > </logger> > > を追加するのが良いかもしれません。 > >> また、ブラウザからアクセスした場合のレスポンス/リクエストヘッダ >> は以下のようになります。 > > Fess でクロールしたときは別なものが返ってきている > のではないでしょうか。上記のログでクロール時の > レスポンスを確認すると切り分けができると思います。 > >> また、Transfer-Encoding が chunked だと問題があったりするでしょうか。 > > 特に問題ないと思います。 > > よろしくお願いいたします。 > > shinsuke > > > 2012年4月23日18:19 KOMINE Masako<Komin****@mss*****>: >> 小峯です。 >> >> >> jp.sf.fess, org.seasar.robot, org.seasar.robot.dbflute, jp.sf.fess.solr, >> org.apache.commons.httpclient >> のログレベルを "debug" にしてクロールを実行しました。 >> >> なかなかまとまらない質問で申し訳ないのですが >> アドバイスいただければ幸いです。 >> >> >> やったことの内容は以下の通りです。 >> >> 1. ログレベルを変更してクロールを実行。 >> 2. MIME TYPEが "text/html" と判断されるページと "text/plain" と判断されるページがあった。 >> 3. 上記2の理由のため、s2robot_rule.diconの "webHtmlRule" のルールに "text/plain" を追加した。 >> 4. 再びクロールを実行。 >> >> 4. のログから >> (1) MIME TYPEが "text/html" と判断される場合と "text/plain" と判断される場合がある >> ※ 同じURLでも"text/html"となる場合と"text/plain"となる場合があります >> ※ ブラウザからアクセスすると content-type は "text/html" です >> (2) ルールが "webHtmlRule" であっても子のURLがクロールされない >> >> >> (1) について >> 以下は4のページクロール後の "insert into ACCESS_RESULT" 時のログです >> (URLは書き換えてあります)。 >> >> ・MIME TYPE text/plain >> [Robot-20120420141512-1-2] DEBUG org.seasar.robot.dbflute.XLog - >> /============================================================================= >> [Robot-20120420141512-1-2] DEBUG org.seasar.robot.dbflute.XLog - >> AccessResultBhv.insert() >> [Robot-20120420141512-1-2] DEBUG org.seasar.robot.dbflute.XLog - >> =======================/ >> [Robot-20120420141512-1-2] DEBUG org.seasar.robot.dbflute.XLog - DBDataServiceImpl.store():63 -> ... >> [Robot-20120420141512-1-2] DEBUG org.seasar.robot.dbflute.QLog - >> insert into ACCESS_RESULT (SESSION_ID, RULE_ID, URL, PARENT_URL, STATUS, HTTP_STATUS_CODE, METHOD, MIME_TYPE, >> CONTENT_LENGTH, EXECUTION_TIME, LAST_MODIFIED, CREATE_TIME) >> values ('20120420141512-1', 'webHtmlRule', '【コンテキストURL】/xxxx/xxxxx/xxx/j', '【コンテキストURL】/xml >> /sitemap.ja.xml', 0, 200, 'GET', 'text/plain', 41784, 5090, '2012-04-20 14:15:54.502', '2012-04-20 14:15:54.614') >> >> ・MIME TYPE text/html >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.dbflute.XLog - >> /============================================================================= >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.dbflute.XLog - >> AccessResultBhv.insert() >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.dbflute.XLog - >> =======================/ >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.dbflute.XLog - DBDataServiceImpl.store():63 -> ... >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.dbflute.QLog - >> insert into ACCESS_RESULT (SESSION_ID, RULE_ID, URL, PARENT_URL, STATUS, HTTP_STATUS_CODE, METHOD, MIME_TYPE, >> CONTENT_LENGTH, EXECUTION_TIME, LAST_MODIFIED, CREATE_TIME) >> values ('20120420141512-1', 'webHtmlRule', '【コンテキストURL】/xxxxxx/xxxxxxxxxx/xxxxxxxxxxxx/j', '【コンテキストURL】 >> /xml/sitemap.ja.xml', 0, 200, 'GET', 'text/html', 31813, 97, '2012-04-20 14:15:49.657', '2012-04-20 14:15:50.156') >> >> また、ブラウザからアクセスした場合のレスポンス/リクエストヘッダ >> は以下のようになります。 >> >> ・レスポンスヘッダソース >> Connection Keep-Alive >> Content-Language ja >> Content-Type text/html;charset=UTF-8 >> Date Fri, 20 Apr 2012 07:00:49 GMT >> Keep-Alive timeout=15, max=100 >> Retry-After Sun, 14 Jun 2009 6:00:00 GMT >> Transfer-Encoding chunked >> ・リクエストヘッダソース >> Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >> Accept-Encoding gzip, deflate >> Accept-Language ja,en;q=0.7,en-us;q=0.3 >> Connection keep-alive >> Cookie 【省略】 >> Host 【ホスト】 >> User-Agent Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0 >> >> >> (2) について >> 以下のような"add child" というログがあるので子URLのリストは作成されているようなのですが >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.client.http.HcHttpClient - Accessing 【URL】 >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.client.http.HcHttpClient - 【ホスト】/robots.txt is already visited. >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.helper.impl.LogHelperImpl - Processing the response. Http Status: 200, >> Exec Time: 97 >> [Robot-20120420141512-1-1] DEBUG org.seasar.robot.transformer.impl.HtmlTransformer - Base URL: 【URL】 >> [Robot-20120420141512-1-1] DEBUG jp.sf.fess.transformer.FessXpathTransformer - 【ホスト名なしの子URL】 -> 【子URL】 >> [Robot-20120420141512-1-1] DEBUG jp.sf.fess.transformer.FessXpathTransformer - Add Child: 【子URL】 >> >> ・MIME TYPE が "text/html" の場合 >> "add child" された子URLに対して >> UrlQueueBhr, AccessResultBhvのselectCount()のあとに >> UrlQueueBhv.batchInsert()が行われますが、このURLに対して >> クロールが実行されません。 >> >> ・MIME TYPE が "text/plain" の場合 >> "add child" された子URLに対して >> UrlQueueBhv.batchInsert()が行われず、クロールも行われません。 >> >> >> 以上の内容から設定の間違いや、ここを確認した方が良いといった >> ことはありますでしょうか >> (クロール対象のwebアプリケーションはリバースプロキシ下で動いているのですが、 >> 同じアプリケーションをリバースプロキシなしの別の >> サーバで動作させた場合は、(URL以外)同じウェブクロールの設定で >> 正常にクロールできるので、ウェブクロールの設定には問題ないと >> 思うのですが)。 >> また、Transfer-Encoding が chunked だと問題があったりするでしょうか。 >> >> >> よろしくお願いいたします。 >> >> --- >> ■ 設定、環境など >> ウェブクロールの設定は次の通りです >> ・URL: 【コンテキストURL】/xml/sitemap.ja.xml >> ・クロール対象とするURL: >> 【コンテキストURL】/.* >> ・クロール対象から除外するURL: >> .*\.png$ >> .*/png$ >> .*/gif$ >> .*\.gif$ >> .*\.jpg$ >> .*/jpg$ >> .*/e$ >> .*/e/$ >> ・深さ: 5 >> >> Fessの実行環境は以下の通りです。 >> OS: Red Hat Enterprise Linux6.2 >> Tomcat: 7.0.23 >> Fess: 5.0.1 >> >> クロール対象のWebアプリケーションは >> apache+tomcatで動作しており、さらにリバースプロキシ下にあります >> --- >> >> (2012/04/17 11:23), KOMINE Masako wrote: >>> 小峯です。 >>> >>> ご回答ありがとうございます。 >>> 今すぐ確認できる環境にないのですが、 >>> 次の機会にやってみようと思います。 >>> >>> >>>> 菅谷です。 >>>> >>>> http://fess.sourceforge.jp/ja/6.0/config/logging.html >>>> >>>> ログレベルを debug などで確認するのが良いと思います。 >>>> org.apache.http 以下あたりを debug にすると >>>> HttpClient 関連のやり取りが確認できると思います。 >>>> >>>> よろしくお願いいたします。 >>>> >>>> shinsuke >>>> >>>> >>>> 2012年4月16日17:09 KOMINE Masako<Komin****@mss*****>: >>>>> はじめまして。小峯と申します。 >>>>> >>>>> サイトマップを使用して、サイトをクロールさせようとしているのですが、 >>>>> クロールはされるものの、webページとしてではなく、 >>>>> 何かのファイルとして処理されてしまいます。 >>>>> >>>>> そのページに含まれるリンク先にクロールに行かず、 >>>>> 検索結果で表示されるコンテンツタイトルに >>>>> URLの最後の部分が表示されるため、そう判断しました。 >>>>> また、このサイトには静的なページと動的に作成されるページとがあって >>>>> 静的なページをサイトマップを使用せずにクロールさせると、 >>>>> こちらはhtmlとして処理されます。 >>>>> どちらの場合も「ウェブクロールの設定」で「深さ」は5に設定していました。 >>>>> >>>>> クロール対象のページのURLは"http:"で始まり、 >>>>> wgetコマンドでアクセスすると、 >>>>> "Content-Type: text/html;charset=UTF-8" >>>>> で応答があるため、s2robot_rule.diconのデフォルトの設定で >>>>> htmlとして処理されそうな気がします。 >>>>> >>>>> fess_crawler.outを見てもエラーらしき出力は見つけられません。 >>>>> >>>>> どのような原因が考えられるか、お心当たりがありましたら >>>>> お教え願えるでしょうか。 >>>>> >>>>> よろしくお願いいたします。 >>>>> >>>>> _______________________________________________ >>>>> Fess-user mailing list >>>>> Fess-****@lists***** >>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user >>> >>> _______________________________________________ >>> Fess-user mailing list >>> Fess-****@lists***** >>> http://lists.sourceforge.jp/mailman/listinfo/fess-user >>> >>> >> >> >> -- >> 小峯 政子 (KOMINE Masako) >> >> 三菱スペース・ソフトウエア(株) >> 第四技術部 第三グループ >> e-mail: Komin****@mss***** >> tel: 029-859-0312 / fax: 029-859-0322 >> >> _______________________________________________ >> Fess-user mailing list >> Fess-****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/fess-user > > _______________________________________________ > Fess-user mailing list > Fess-****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/fess-user > > -- 小峯 政子 (KOMINE Masako) 三菱スペース・ソフトウエア(株) 第四技術部 第三グループ e-mail: Komin****@mss***** tel: 029-859-0312 / fax: 029-859-0322