urllib.robotparser — Analisador sintático de robots.txt¶
Código-fonte: 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='')¶
Esta classe fornece métodos para ler, analisar e responder perguntas sobre o arquivo
robots.txtem url.- set_url(url)¶
Define a URL referente a um arquivo
robots.txt.
- read()¶
Lê o URL
robots.txte o alimenta para o analisador sintático.
- parse(lines)¶
Analisa o argumento de linhas.
- can_fetch(useragent, url)¶
Retorna
Truese o useragent tiver permissão para buscar a url de acordo com as regras contidas no arquivorobots.txtanalisado.
- mtime()¶
Retorna o horário em que o arquivo
robots.txtfoi buscado pela última vez. Isso é útil para web spiders de longa duração que precisam verificar novos arquivosrobots.txtperiodicamente.
- modified()¶
Define a hora em que o arquivo
robots.txtfoi buscado pela última vez para a hora atual.
- crawl_delay(useragent)¶
Retorna o valor do parâmetro
Crawl-delayderobots.txtpara o useragent em questão. Se não houver tal parâmetro ou se ele não se aplicar ao useragent especificado ou se a entradarobots.txtpara este parâmetro tiver sintaxe inválida, retornaNone.Adicionado na versão 3.6.
- request_rate(useragent)¶
Retorna o conteúdo do parâmetro
Request-ratederobots.txtcomo uma tupla nomeadaRequestRate(requests, seconds). Se não houver tal parâmetro ou se ele não se aplicar ao useragent especificado ou se a entradarobots.txtpara este parâmetro tiver sintaxe inválida, retornaNone.Adicionado na versão 3.6.
O exemplo a seguir demonstra o uso básico da 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