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
website that published the robots.txt file. For more details on the
structure of robots.txt files, see RFC 9309.
- class urllib.robotparser.RobotFileParser(url='')¶
This class provides methods to read, parse and answer questions about the
robots.txtfile at url or aurllib.request.Requestobject.Modifié dans la version 3.16.0a0 (unreleased): url parameter can be a
urllib.request.Requestobject.- set_url(url)¶
Sets the URL referring to a
robots.txtfile or aurllib.request.Requestobject.Modifié dans la version 3.16.0a0 (unreleased): url parameter can be a
urllib.request.Requestobject.
- 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.pythontest.net/robots.txt")
>>> rp.read()
>>> rrate = rp.request_rate("*")
>>> rrate.requests
1
>>> rrate.seconds
1
>>> rp.crawl_delay("*")
6
>>> rp.can_fetch("*", "http://www.pythontest.net/")
True
>>> rp.can_fetch("*", "http://www.pythontest.net/no-robots-here/")
False
The following example demonstrates use of a urllib.request.Request
object with additional user-agent headers populated:
>>> import urllib.robotparser
>>> import urllib.request
>>> rp = urllib.robotparser.RobotFileParser()
>>> rp.set_url(urllib.request.Request("http://www.pythontest.net/robots.txt", headers={"User-Agent": "IsraBot"}))
>>> rp.read()
>>> rp.can_fetch("*", "http://www.pythontest.net/")
True
>>> rp.can_fetch("*", "http://www.pythontest.net/no-robots-here/")
False