urllib.robotparser
— Analyseur de fichiers robots.txt¶
Code source : Lib/urllib/robotparser.py
This module provides a single class, RobotFileParser
, which answers
questions about whether or not a particular user agent can fetch a URL on the
web site that published the robots.txt
file. For more details on the
structure of robots.txt
files, see http://www.robotstxt.org/orig.html.
- class urllib.robotparser.RobotFileParser(url='')¶
Cette classe fournit des méthodes pour lire, analyser et répondre aux questions à propos du fichier
robots.txt
disponible à l'adresse url.- set_url(url)¶
Modifie l'URL référençant le fichier
robots.txt
.
- read()¶
Lit le fichier
robots.txt
depuis son URL et envoie le contenu à l'analyseur.
- parse(lines)¶
Analyse les lignes données en argument.
- can_fetch(useragent, url)¶
Renvoie
True
si useragent est autorisé à accéder à url selon les règles contenues dans le fichierrobots.txt
analysé.
- mtime()¶
Renvoie le temps auquel le fichier
robots.txt
a été téléchargé pour la dernière fois. Cela est utile pour des web spiders de longue durée qui doivent vérifier périodiquement si le fichier est mis à jour.
- modified()¶
Indique que le fichier
robots.txt
a été téléchargé pour la dernière fois au temps courant.
- crawl_delay(useragent)¶
Renvoie la valeur du paramètre
Crawl-delay
durobots.txt
pour le useragent en question. S'il n'y a pas de tel paramètre ou qu'il ne s'applique pas au useragent spécifié ou si l'entrée durobots.txt
pour ce paramètre a une syntaxe invalide, renvoieNone
.Nouveau dans la version 3.6.
- request_rate(useragent)¶
Renvoie le contenu du paramètre
Request-rate
durobots.txt
sous la forme d'un named tupleRequestRate(requests, seconds)
. S'il n'y a pas de tel paramètre ou qu'il ne s'applique pas au useragent spécifié ou si l'entrée durobots.txt
pour ce paramètre a une syntaxe invalide,None
est renvoyé.Nouveau dans la version 3.6.
L'exemple suivant présente une utilisation basique de la classe 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