urllib.robotparser — robots.txtのパーサー—Pythonドキュメント
urllib.robotparser —robots.txtのパーサー
ソースコード: :source: `Lib / urllib / robotparser.py`
このモジュールは、特定のユーザーエージェントがrobots.txt
ファイルを公開したWebサイトでURLをフェッチできるかどうかに関する質問に答える単一のクラス RobotFileParser を提供します。 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)
useragent が解析された
robots.txt
ファイルに含まれるルールに従って url をフェッチすることを許可されている場合、True
を返します。
- mtime()
robots.txt
ファイルが最後にフェッチされた時刻を返します。 これは、新しいrobots.txt
ファイルを定期的にチェックする必要がある長時間実行されるWebスパイダーに役立ちます。
- modified()
robots.txt
ファイルが最後にフェッチされた時刻を現在の時刻に設定します。
- crawl_delay(useragent)
問題のユーザーエージェントの
robots.txt
からCrawl-delay
パラメーターの値を返します。 そのようなパラメータがないか、指定された useragent に適用されない場合、またはこのパラメータのrobots.txt
エントリの構文が無効な場合は、None
を返します。バージョン3.6の新機能。
- request_rate(useragent)
robots.txt
のRequest-rate
パラメーターの内容を名前付きタプルRequestRate(requests, seconds)
として返します。 そのようなパラメータがないか、指定された useragent に適用されない場合、またはこのパラメータの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