urllib.robotparser — Parser for robots.txt¶
Código fuente: Lib/urllib/robotparser.py
Este módulo proporciona una clase única, RobotFileParser, que responde preguntas sobre si un agente de usuario en particular puede obtener una URL en el sitio web que publicó el archivo robots.txt. Para obtener más detalles sobre la estructura de los archivos robots.txt, consulte http://www.robotstxt.org/orig.html.
- class urllib.robotparser.RobotFileParser(url='')¶
Esta clase proporciona métodos para leer, analizar y responder preguntas acerca de
robots.txt- set_url(url)¶
Establece la URL que hace referencia a un archivo
robots.txt.
- read()¶
Lee la URL
robots.txty la envía al analizador.
- parse(lines)¶
Analiza el argumento lines.
- can_fetch(useragent, url)¶
Retorna
Truesi el useragent tiene permiso para buscar la url de acuerdo con las reglas contenidas en el archivorobots.txtanalizado.
- 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 archivosrobots.txtperiódicamente.
- modified()¶
Establece la hora a la que se recuperó por última vez el archivo
robots.txthasta la hora actual.
- crawl_delay(useragent)¶
Retorna el valor del parámetro
Crawl-delayderobots.txtpara el useragent en cuestión. Si no existe tal parámetro o no se aplica al useragent especificado o la entradarobots.txtpara este parámetro tiene una sintaxis no válida, devuelveNone.Added in version 3.6.
- request_rate(useragent)¶
Retorna el contenido del parámetro
Request-ratederobots.txtcomo una tupla nombradaRequestRate(requests, seconds). Si no existe tal parámetro o no se aplica al useragent especificado o la entradarobots.txtpara este parámetro tiene una sintaxis no válida, devuelveNone.Added in version 3.6.
El siguiente ejemplo demuestra el uso básico de la clase 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