"urllib.robotparser" ---  Parser for robots.txt
***********************************************

**ソースコード:** Lib/urllib/robotparser.py

======================================================================

このモジュールでは単一のクラス、 "RobotFileParser" を提供します。この
クラスは、特定のユーザエージェントが "robots.txt" ファイルを公開してい
る Web サイトのある URL を取得可能かどうかの質問に答えます。
"robots.txt" ファイルの構造に関する詳細は
http://www.robotstxt.org/orig.html を参照してください。

class urllib.robotparser.RobotFileParser(url='')

   *url* の "robots.txt" に対し読み込み、パーズ、応答するメソッドを提
   供します。

   set_url(url)

      "robots.txt" ファイルを参照するための URL を設定します。

   read()

      "robots.txt" URL を読み出し、パーザに入力します。

   parse(lines)

      引数 *lines* の内容を解釈します。

   can_fetch(useragent, url)

      解釈された "robots.txt" ファイル中に記載された規則に従ったとき、
      *useragent* が *url* を取得してもよい場合には "True" を返します
      。

   mtime()

      "robots.txt" ファイルを最後に取得した時刻を返します。この値は、
      定期的に新たな "robots.txt" をチェックする必要がある、長時間動作
      する Web スパイダープログラムを実装する際に便利です。

   modified()

      "robots.txt" ファイルを最後に取得した時刻を現在の時刻に設定しま
      す。

   crawl_delay(useragent)

      当該の *ユーザーエージェント* 用の "robots.txt" の "Crawl-delay"
      パラメーターの値を返します。そのようなパラメーターが存在しないか
      、指定された *ユーザーエージェント* にあてはまらない、もしくは
      "robots.txt" のこのパラメーターのエントリの構文が無効な場合は、
      "None" を返します。

      バージョン 3.6 で追加.

   request_rate(useragent)

      "robots.txt" の "Request-rate" パラメーターの内容を *named
      tuple* "RequestRate(requests, seconds)" として返します。そのよう
      なパラメーターが存在しないか、指定された *ユーザーエージェント*
      にあてはまらない、もしくは "robots.txt" のこのパラメーターのエン
      トリの構文が無効な場合は、 "None" を返します。

      バージョン 3.6 で追加.

   site_maps()

      "robots.txt" の "Sitemap" パラメーターの内容を "list()" の形式で
      返します。そのようなパラメーターが存在しないか、 "robots.txt" の
      このパラメーターのエントリの構文が無効な場合は、 "None" を返しま
      す。

      バージョン 3.8 で追加.

以下に "RobotFileParser" クラスの利用例を示します。

   >>> import urllib.robotparser
   >>> rp = urllib.robotparser.RobotFileParser()
   >>> rp.set_url("http://www.musi-cal.com/robots.txt")
   >>> rp.read()
   >>> rrate = rp.request_rate("*")
   >>> rrate.requests
   3
   >>> rrate.seconds
   20
   >>> rp.crawl_delay("*")
   6
   >>> rp.can_fetch("*", "http://www.musi-cal.com/cgi-bin/search?city=San+Francisco")
   False
   >>> rp.can_fetch("*", "http://www.musi-cal.com/")
   True
