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
Truezurück, wenn der useragent die url gemäß den Regeln der geparstenrobots.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 neuenrobots.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-delayaus derrobots.txtfür den betreffenden useragent zurück. Wenn ein solcher Parameter nicht existiert, nicht für den angegebenen useragent gilt oder derrobots.txt-Eintrag für diesen Parameter eine ungültige Syntax aufweist, wirdNonezurückgegeben.Hinzugefügt in Version 3.6.
- request_rate(useragent)¶
Gibt den Inhalt des Parameters
Request-rateaus derrobots.txtals benanntes TupelRequestRate(requests, seconds)zurück. Wenn ein solcher Parameter nicht existiert, nicht für den angegebenen useragent gilt oder derrobots.txt-Eintrag für diesen Parameter eine ungültige Syntax aufweist, wirdNonezurückgegeben.Hinzugefügt in Version 3.6.
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