[fess-user 558] Re: htmlとしてクロールして欲しいページがファイルとして処理されているよう

Back to archive index

KOMINE Masako Komin****@mss*****
2012年 4月 23日 (月) 18:19:07 JST


小峯です。


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 メーリングリストの案内
Back to archive index