KazMuzik.net
Music / Technology / Healthcare / Immigration / アメリカ
Google
 
<< Stanford Dish 2 rounds alone and Omron Health Management SoftwareStanford Dish 1 round alone >>

digidesign.com Japanese pages - KazMuzik Blog
2008-07-07 12:08

昨日は、Digidesign のサイトを crawl してみましたが、全言語のページが含まれていたため、英語(langid=100)のページだけ crawl してみます。昨日 crawl で作成された Nutch segment(s) を merge してから、dump して、英語のページを grep してみたところ、291 の URL があったので、これを crawl の seeds としました。ちなみに、これには、すでに fetch したページと、parse_data に含まれる outlink: toUrl: というリンクの URL が含まれます。

$ bin/nutch mergesegs digidesign.com-segment -dir crawl-20080705112059/segments
$ bin/nutch readseg -dump `ls -d digidesign.com-segment/2008*` dump -nocontent -nofetch -nogenerate \
  -noparse -noparsetext
$ mkdir seeds100
$ cat dump/dump \
 | grep 'http://digidesign.com/index.cfm' \
 | grep 'langid=100' \
 | sed -e 's/^.*http:/http:/' -e 's/ .*$//' \
 | sort -u \
 > seeds100/seeds.txt
$ wc -l seeds100/seeds.txt
291 seeds100/seeds.txt
$ vi conf/crawl-urlfilter.txt
$ grep digidesing conf/crawl-urlfilter.txt
+^http://digidesign.com/index.cfm[?].*langid=100
$ nohup bin/nutch crawl seeds100 -depth 10 &
$ tail -f nohup.out
crawl started in: crawl-20080706115317
rootUrlDir = seeds100
threads = 10
depth = 10
Injector: starting
...
Fetcher: starting
Fetcher: segment: crawl-20080706115317/segments/20080706120142
Fetcher: threads: 10
fetching http://digidesign.com/index.cfm?navid=103&langid=100&
fetching http://digidesign.com/index.cfm?navid=3&langid=100&eid=
fetch of http://digidesign.com/index.cfm?navid=103&langid=100& failed with: Http code=500,\
 url=http://digidesign.com/index.cfm?navid=103&langid=100&
fetch of http://digidesign.com/index.cfm?navid=3&langid=100&eid= failed with: Http code=500,\
 url=http://digidesign.com/index.cfm?navid=3&langid=100&eid=
Fetcher: done
...
done merging
crawl finished: crawl-20080706115317
$ bin/nutch readseg -list -dir crawl-20080706115317/segments | sort
20080706115322  291             2008-07-06T11:53:32     2008-07-06T12:01:24     291     273
20080706120142  2               2008-07-06T12:01:46     2008-07-06T12:01:48     2       0
20080706120153  2               2008-07-06T12:01:57     2008-07-06T12:01:59     2       0
NAME            GENERATED       FETCHER START           FETCHER END             FETCHED PARSED
$ 

1回目の fetch で、2つの URL に対して、HTTP Error 500 (Internal server error) で失敗した他は、すべて fetch できました。outlink もあるので、昨日の crawl でも、depth=6 とすれば、英語のページはすべて fetch できたことになります。

同様にして、日本語(langid=5)のページを crawl してみます。
$ mkdir seeds5
$ cat dump/dump \
 | grep 'http://digidesign.com/index.cfm' \
 | grep 'langid=5[^0-9]' \
 | sed -e 's/^.*http:/http:/' -e 's/ .*$//' \
 | sort -u \
 > seeds5/seeds.txt
$ wc -l seeds5/seeds.txt
210 seeds5/seeds.txt
$ $ grep digidesing conf/crawl-urlfilter.txt
+^http://digidesign.com/index.cfm[?].*langid=5([^0-9].*)*$
$ nohup bin/nutch crawl seeds5 &
$ tail -f nohup.out
crawl started in: crawl-20080706124228
rootUrlDir = seeds5
threads = 10
depth = 5
Injector: starting
...
crawl finished: crawl-20080706124228
$ bin/nutch readseg -list -dir crawl-20080706124228/segments | sort
20080706124234  210             2008-07-06T12:42:40     2008-07-06T12:48:25     210     197
20080706124841  63              2008-07-06T12:48:45     2008-07-06T12:50:25     63      57
20080706125035  5               2008-07-06T12:50:39     2008-07-06T12:50:44     5       0
NAME            GENERATED       FETCHER START           FETCHER END             FETCHED PARSED
$ 

3回目までの fetch で、278 ページと、crawl が完了しました。昨日の crawl では、日本語のページは、3回目の fetch から始まっているので、やはり、depth=6 (or 7) 程度で、すべて fetch できるようです。各言語ごとには、300ページ弱のサイトのようです。

それでは、日本語のページだけを検索してみます。



日本語でも検索できました。なお、上の例では、わかりませんが、Nutch の Analyzer は、Uni-gram なので、日本語など CJK では、2/27/2007 に書いたような問題があります。

なお、検索ボックスに入力した日本語を正しく認識させるには、tomcat の設定を1箇所、確認しておく必要があります。

$ cd /usr/local/tomcat/conf
$ cat server.xml
...
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"
               useBodyEncodingForURI="true" />
...
$ 


上記のように、server.xml に、useBodyEncodingForURI="true" を設定しておく必要があります。これは、default では設定されていないので、注意が必要です。

Tags: computer_technology