urllib.robotparser — robots.txtのパーサー—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/library/urllib.robotparser
移動先:案内検索

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)

解析されたrobots.txtファイルに含まれるルールに従って useragenturl をフェッチすることを許可されている場合、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.txtRequest-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