urllib.robotparser
--- 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 tupleRequestRate(requests, seconds)
として返します。そのようなパラメーターが存在しないか、指定された ユーザーエージェント にあてはまらない、もしくはrobots.txt
のこのパラメーターのエントリの構文が無効な場合は、None
を返します。バージョン 3.6 で追加.
-
以下に 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