urllib.robotparser
— Parser for robots.txt¶
Código-fonte: Lib/urllib/robotparser.py
Este módulo fornece uma única classe, RobotFileParser
, que responde a perguntas sobre se um agente de usuário específico pode ou não buscar uma URL no site que publicou o arquivo robots.txt
. Para mais detalhes sobre a estrutura dos arquivos robots.txt
, consulte http://www.robotstxt.org/orig.html.
-
class
urllib.robotparser.
RobotFileParser
(url='')¶ Esta classe fornece métodos para ler, analisar e responder perguntas sobre o arquivo
robots.txt
em url.-
set_url
(url)¶ Define a URL referente a um arquivo
robots.txt
.
-
read
()¶ Lê o URL
robots.txt
e o alimenta para o analisador sintático.
-
parse
(lines)¶ Analisa o argumento de linhas.
-
can_fetch
(useragent, url)¶ Retorna
True
se o useragent tiver permissão para buscar a url de acordo com as regras contidas no arquivorobots.txt
analisado.
-
mtime
()¶ Retorna o horário em que o arquivo
robots.txt
foi buscado pela última vez. Isso é útil para web spiders de longa duração que precisam verificar novos arquivosrobots.txt
periodicamente.
-
modified
()¶ Define a hora em que o arquivo
robots.txt
foi buscado pela última vez para a hora atual.
-
crawl_delay
(useragent)¶ Retorna o valor do parâmetro
Crawl-delay
derobots.txt
para 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.txt
para este parâmetro tiver sintaxe inválida, retornaNone
.Novo na versão 3.6.
-
request_rate
(useragent)¶ Retorna o conteúdo do parâmetro
Request-rate
derobots.txt
como 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.txt
para este parâmetro tiver sintaxe inválida, retornaNone
.Novo 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.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