PREV | TOP | NEXT |
5.1.1. postgresユーザの作成
データベースを作る権限は与えます。ユーザ追加の権限は与える必要はありません。
% su - postgres % createuser search
% su - search % createdb search
% psql -f createtable.sql編集する必要がある変数について説明します。
5.1.4.1. $timeout
httpサーバと通信する時のタイムアウト時間(秒)を設定します。$timeout = 60;
5.1.4.2. $delay
同じhttpサーバと通信する時にアクセスする間隔(分)を設定します。$delay = 0.5;
5.1.4.3. $email_adr
ロボットを実行する人のメールアドレスを設定します。たぶんあなたのアドレスです。$email_adr = 'you@yourdomain';
5.1.4.4. @start_urls
収集のスタートとなるURLを指定します。@start_urls = ( 'http://aaa.intranet.ne.jp/', 'http://bbb.intranet.ne.jp/', 'http://ccc.intranet.ne.jp/~user1/' );
5.1.4.5. $count
一度の実行で収集するページ数の上限値を指定します。
とりあえず最初は少なめに設定してちゃんと動くことを確認してから大きい値を設定しましょう。$count = 10;
5.1.4.6. @fetch_allow
GETを許可するURLを指定します。ここで記述した正規表現にマッチしたものだけをGETします。file://という記述があるのは、既に保存ずみのページの場合は、その保存したファイルを解析の対象にするからです。
@fetch_allow = ( '^http://.*\.intranet.ne.jp/.*\.html$', '^http://.*\.intranet.ne.jp/.*\.htm$', '^http://.*\.intranet.ne.jp/.*\.txt$', '^http://.*\.intranet.ne.jp/.*/$', '^http://.*\.intranet.ne.jp/$', '^http://.*\.intranet.ne.jp$','^file:///home/search/work/download/.*html$', '^file:///home/search/work/download/.*htm$', '^file:///home/search/work/download/.*txt$', '^file:///home/search/work/download/.*/$' );
5.1.4.7. @save_allow
ページをGETした後にローカルに保存するのを許可するURLを指定します。ここで記述した正規表現にマッチしたものだけを保存します。マッチしない場合は保存はしませんが、その中のリンクは抽出します。@save_allow = ( '^http://.*\.intranet.ne.jp/.*\.html$', '^http://.*\.intranet.ne.jp/.*\.htm$', '^http://.*\.intranet.ne.jp/.*\.txt$', '^http://.*\.intranet.ne.jp/.*/$', '^http://.*\.intranet.ne.jp/$', '^http://.*\.intranet.ne.jp$' );
5.1.4.8. %tran_pat
この設定は、ページが既に保存ずみ場合にURL文字列をhttp://からfile://に変換して処理を続けます。%tran_pat = ( 'file:///home/search/work/download/', 'http://' );上の例だと
http://aaa.bbb.ccc/ddd.htmlというURL文字列が
file:///home/search/work/download/aaa.bbb.ccc/ddd.htmlに変換されます。
5.2.1.1. $verbose
値を1にすると処理中のデバグ情報を出力します。それ以外の値の場合はほとんど出力しないで静かに実行します。$verbose = 1;
5.2.2. robot.plの実行
実行するとページの収集がはじまります。中断する場合はCtrl-Cで止めてください。
終了後もしくは中断後に、再び実行すると、先の収集の続きからページの収集を始めます。% su - search % cd ~/work % ./robot.pl
5.3. インデックスの作成
一度に大量のファイルを処理するとメモリが足りなくなる場合があるので少しずつ処理して、あとでまとめてマージしていくスクリプトを用意しました。
downディレクトリ以下にある全てのファイルを対象としてインデックスを作成します。
5.3.1.1. $splitline
一度に索引づけをするファイル数を指定します。$splitline = 30;
5.3.1.2. $base
作成されるインデックスファイルのファイル名を指定します。$base = "intra";
% su - search % cd ~/work % ./index.pl
PREV | TOP | NEXT |