"urllib.robotparser" ---  Parser for robots.txt
***********************************************

**Código fuente:** 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.txt" file at *url* or a "urllib.request.Request"
   object.

   Distinto en la versión 3.16.0a0 (unreleased): *url* parameter can
   be a "urllib.request.Request" object.

   set_url(url)

      Sets the URL referring to a "robots.txt" file or a
      "urllib.request.Request" object.

      Distinto en la versión 3.16.0a0 (unreleased): *url* parameter
      can be a "urllib.request.Request" object.

   read()

      Lee la URL "robots.txt" y la envía al analizador.

   parse(lines)

      Analiza el argumento *lines*.

   can_fetch(useragent, url)

      Retorna "True" si el *useragent* tiene permiso para buscar la
      *url* de acuerdo con las reglas contenidas en el archivo
      "robots.txt" analizado.

   mtime()

      Retorna la hora en que se recuperó por última vez el archivo
      "robots.txt". Esto es útil para arañas web de larga duración que
      necesitan buscar nuevos archivos "robots.txt" periódicamente.

   modified()

      Establece la hora a la que se recuperó por última vez el archivo
      "robots.txt" hasta la hora actual.

   crawl_delay(useragent)

      Retorna el valor del parámetro "Crawl-delay" de "robots.txt"
      para el *useragent* en cuestión. Si no existe tal parámetro o no
      se aplica al *useragent* especificado o la entrada "robots.txt"
      para este parámetro tiene una sintaxis no válida, devuelve
      "None".

      Added in version 3.6.

   request_rate(useragent)

      Retorna el contenido del parámetro "Request-rate" de
      "robots.txt" como una *tupla nombrada* "RequestRate(requests,
      seconds)". Si no existe tal parámetro o no se aplica al
      *useragent* especificado o la entrada "robots.txt" para este
      parámetro tiene una sintaxis no válida, devuelve "None".

      Added in version 3.6.

   site_maps()

      Retorna el contenido del parámetro "Sitemap" de "robots.txt" en
      forma de "list()". Si no existe tal parámetro o la entrada
      "robots.txt" para este parámetro tiene una sintaxis no válida,
      devuelve "None".

      Added in version 3.8.

El siguiente ejemplo demuestra el uso básico de la clase
"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
