LWP::RobotUA

Hippo2000 (2000/7/28)

LWP::RobotUAモジュールなのです。

作者はGisle Aasさんです。メールで許可をいただきました。

なおLWP::RobotUAモジュールに関連して以下のモジュールがあります。

クラス名 説 明
WWW::RobotsRules robots.txtファイルの解析
WWW::RobotRules::AnyDBM_File 永続RobotRules

目次


名前

LWP::RobotUA - Webロボットのためのクラス


概要

  require LWP::RobotUA;
  $ua = new LWP::RobotUA 'my-robot/0.1', 'me@foo.com';
  $ua->delay(10);  # be very nice, go slowly
  ...
  # just use it just like a normal LWP::UserAgent
  $res = $ua->request($req);

説明

このクラスはロボット・アプリケーションに適したユーザ・エージェントを実装します。ロボットは訪れるサーバにとってナイスでなければなりません。それらは/robots.txtを見て歓迎されていることを確認しなければなりません。そしてあまり頻繁にリクエストしてはいけません。

しかし、robotを書くことを考える前に<URL:http://info.webcrawler.com/mak/projects/robots/robots.html>を見てください。

LWP::RobotUAをあなたのユーザ・エージェントとして使うとき、これらのことについて考える必要は本当にありません。通常の LWP::UserAgentを使って好きなように単純にリクエストを送信してください。この特別なエージェントはあなたがナイスであることを保証します。


メソッド

LWP::RobotUA はLWP::UserAgentのサブクラスで、同じメソッドを実装しています。さらに以下のメソッドも提供されます:

$ua = LWP::RobotUA->new($agent_name, $from, [$rules])
あなたのロボットの名前とロボットに責任を持つ人間(つまりあなた)のメールアドレスがコンストラクタにより要求されます。

オプションで、WWW::RobotRules を使うように指定することも出来ます。

$ua->delay([$minutes])
同じサーバへのリクエスト間の最小限の遅延を設定します。デフォルトは1分です。
$ua->use_sleep([$boolean])
リクエストの到着があまりに早いとき($ua->delay分が立つ前)、UAがsleep()するべきかどうかを示す値を取得/設定します。デフォルトはTRUEです。もしこの値がFALSEであれば、内部の SERVICE_UNAVAILABLEが生成されます。このサーバに次のリクエストを送信することがいつになったらOKかを示す、Retry-Afterヘッダを持ちます。
$ua->rules([$rules])
使用するWWW::RobotRules オブジェクトの設定/取得。
$ua->no_visits($netloc)
このサーバ・ホストから取り出されたドキュメントの数を返します。このメソッドがnum_visits()とかなんとか名付けられるべきだってことは、わかっていますってば。:-(
$ua->host_wait($netloc)
このホストへ新しいリクエストをすることができるまで、(今から)何秒待たなければならないかを返します。
$ua->as_string
UAの状態を示す文字列を返します。主にデバッグに役立ちます。

参考資料

LWP::UserAgent, WWW::RobotRules


著作権(COPYRIGHT)

Copyright 1996-2000 Gisle Aas.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


ホーム Perlの小技 LWP

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。