urllib.robotparser — Parser für robots.txt

Quellcode: Lib/urllib/robotparser.py


Dieses Modul stellt eine einzelne Klasse zur Verfügung, die RobotFileParser, die Fragen beantwortet, ob ein bestimmter User-Agent eine URL auf der Website abrufen darf, die die robots.txt-Datei veröffentlicht hat. Weitere Details zur Struktur von robots.txt-Dateien finden Sie unter http://www.robotstxt.org/orig.html.

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

Diese Klasse bietet Methoden zum Lesen, Parsen und Beantworten von Fragen zur robots.txt-Datei unter url.

set_url(url)

Setzt die URL, die sich auf eine robots.txt-Datei bezieht.

read()

Liest die robots.txt-URL und übergibt sie an den Parser.

parse(lines)

Parst das Argument `lines`.

can_fetch(useragent, url)

Gibt True zurück, wenn der useragent die url gemäß den Regeln der geparsten robots.txt-Datei abrufen darf.

mtime()

Gibt den Zeitpunkt zurück, zu dem die robots.txt-Datei zuletzt abgerufen wurde. Dies ist nützlich für langlaufende Webcrawler, die regelmäßig nach neuen robots.txt-Dateien suchen müssen.

modified()

Setzt den Zeitpunkt, zu dem die robots.txt-Datei zuletzt abgerufen wurde, auf die aktuelle Zeit.

crawl_delay(useragent)

Gibt den Wert des Parameters Crawl-delay aus der robots.txt für den betreffenden useragent zurück. Wenn ein solcher Parameter nicht existiert, nicht für den angegebenen useragent gilt oder der robots.txt-Eintrag für diesen Parameter eine ungültige Syntax aufweist, wird None zurückgegeben.

Hinzugefügt in Version 3.6.

request_rate(useragent)

Gibt den Inhalt des Parameters Request-rate aus der robots.txt als benanntes Tupel RequestRate(requests, seconds) zurück. Wenn ein solcher Parameter nicht existiert, nicht für den angegebenen useragent gilt oder der robots.txt-Eintrag für diesen Parameter eine ungültige Syntax aufweist, wird None zurückgegeben.

Hinzugefügt in Version 3.6.

site_maps()

Gibt den Inhalt des Parameters Sitemap aus der robots.txt in Form einer list() zurück. Wenn ein solcher Parameter nicht existiert oder der robots.txt-Eintrag für diesen Parameter eine ungültige Syntax aufweist, wird None zurückgegeben.

Hinzugefügt in Version 3.8.

Das folgende Beispiel demonstriert die grundlegende Verwendung der Klasse 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