urllib.robotparser --- Parser for 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.txtdisponible à l'adresse url.- set_url(url)¶
Modifie l'URL référençant le fichier
robots.txt.
- read()¶
Lit le fichier
robots.txtdepuis son URL et envoie le contenu à l'analyseur.
- parse(lines)¶
Analyse les lignes données en argument.
- can_fetch(useragent, url)¶
Renvoie
Truesi useragent est autorisé à accéder à url selon les règles contenues dans le fichierrobots.txtanalysé.
- mtime()¶
Renvoie le temps auquel le fichier
robots.txta é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.txta été téléchargé pour la dernière fois au temps courant.
- crawl_delay(useragent)¶
Renvoie la valeur du paramètre
Crawl-delaydurobots.txtpour 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.txtpour ce paramètre a une syntaxe invalide, renvoieNone.Ajouté dans la version 3.6.
- request_rate(useragent)¶
Renvoie le contenu du paramètre
Request-ratedurobots.txtsous 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.txtpour ce paramètre a une syntaxe invalide,Noneest renvoyé.Ajouté 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