robots.txt para Web Scraping: O Que Ele Obriga, O Que Não

robots.txt é uma convenção, não um contrato - e não um bloqueio. Aqui está o que ele realmente pede a um scraper, o que ele não pode impor e como respeitá-lo enquanto ainda obtém dados.

Toda conversa sobre ética de scraping começa com robots.txt, e a maioria delas erra em uma de duas direções - tratando-o como uma lei pela qual você será preso por violar, ou como um ruído que pode ser ignorado completamente. Não é nenhum dos dois. robots.txt é uma convenção voluntária que informa aos bots bem-comportados quais caminhos um site preferiria que eles deixassem em paz. Saber exatamente o que ele obriga e o que não é o que separa uma operação de dados profissional de uma imprudente. Este é um guia para praticantes, e uma nota antecipada: isto é informativo, não um conselho legal.

O que robots.txt realmente é

robots.txt implementa o Protocolo de Exclusão de Robôs, padronizado em 2022 como RFC 9309. É um arquivo de texto simples que reside na raiz de um domínio - https://example.com/robots.txt - com um arquivo por domínio ou subdomínio. É opcional: um 404 simplesmente significa que o site não tem arquivo e não expressou preferência. Crucialmente, é um pedido, não uma barreira. Nada sobre servir um robots.txt tecnicamente impede o acesso; ele depende da boa fé dos bots que o leem.

Ler é uma única solicitação - faça isso antes de rastrear qualquer coisa, sempre:

# Just read it
curl -s https://example.com/robots.txt

# Through a proxy, as your scraper would see it
curl -s -x http://USER:PASS@gate.quantumproxies.io:8000 https://example.com/robots.txt

As diretivas que importam

O vocabulário é pequeno. Aprenda estes e você poderá ler qualquer robots.txt num piscar de olhos:

Uma ressalva sobre a sintaxe: os curingas * e $ em padrões de caminho não estão no padrão original, mas todos os principais motores os honram, então Disallow: /*.pdf$ é comum e eficaz na prática.

import urllib.robotparser as rp

# Parse robots.txt and check a URL for your user agent
robots = rp.RobotFileParser()
robots.set_url("https://example.com/robots.txt")
robots.read()

UA = "MyResearchBot/1.0"
print(robots.can_fetch(UA, "https://example.com/products"))  # True / False
print(robots.crawl_delay(UA))                                 # seconds, or None
Diagrama de duas colunas contrastando o que robots.txt é (uma convenção, um sinal de taxa) versus o que não é (um contrato, um controle de acesso)
robots.txt é um sinal a ser respeitado, não um bloqueio que o impede ou um contrato que o obriga por si só.

O que ele obriga - e o que não

Esta é a parte que as pessoas mais precisam esclarecer. robots.txt não é, por si só, legalmente vinculante, e não é um mecanismo técnico de controle de acesso - ele não bloqueia nada. Os tribunais geralmente tratam dados públicos bem conhecidos como públicos. Mas 'não é uma lei por si só' não é o mesmo que 'sem consequências'. Ignorar os desejos declarados de um site pode se tornar um fator em argumentos de termos de serviço, invasão ou uso indevido de computador, convida bloqueios e escrutínio extra, e é simplesmente má cidadania. A postura pragmática: trate robots.txt como um piso ético que você honra, e trate as questões legais reais - dados pessoais, contratos, jurisdição - como um assunto separado a ser acertado. Nossa visão geral sobre legalidade do web scraping em 2026 cobre isso separadamente.

A mudança dos rastreadores de IA

robots.txt assumiu uma segunda vida como o canal de opt-out para treinamento de IA. Sites agora adicionam regras explícitas para agentes de usuário de IA - GPTBot, Google-Extended, CCBot, ClaudeBot, PerplexityBot e outros - para dizer 'me indexe, mas não treine em mim'. É por isso que pesquisadores agora argumentam que robots.txt não é mais suficiente por si só para manter dados públicos fora de modelos: depende inteiramente de cada rastreador escolher obedecer, e só fala com agentes declarados e bem-comportados. Se você opera um rastreador, declarar um User-Agent honesto e respeitar esses opt-outs é o mínimo. O arquivo companheiro emergente para a intenção oposta - convidar ferramentas de IA - é llms.txt, que cobrimos em nosso guia para llms.txt.

# A modern robots.txt often carries AI-specific opt-outs:
#   User-agent: GPTBot
#   Disallow: /
#
#   User-agent: Google-Extended
#   Disallow: /
#
#   User-agent: *
#   Crawl-delay: 5
#   Sitemap: https://example.com/sitemap.xml
Diagrama de fluxo de um rastreamento em conformidade: buscar robots.txt, corresponder agente de usuário, honrar crawl-delay, rastrear caminhos públicos permitidos
Um rastreamento em conformidade lê o arquivo primeiro, honra as diretivas de taxa e toca apenas os caminhos públicos permitidos.

Ser um bom cidadão enquanto ainda obtém dados

Respeitar robots.txt e coletar os dados públicos que você precisa não estão em conflito. As disciplinas que o mantêm bem-vindo são as mesmas que o mantêm desbloqueado: honre Crawl-delay e cadencie suas solicitações, identifique seu bot honestamente, faça cache agressivamente para nunca buscar a mesma página novamente e evite os endpoints caros que um site está tentando proteger. A norma da comunidade, bem colocada em fóruns, é que robots.txt existe principalmente para desencorajar bots que geram tráfego esmagador - então não seja esse bot. Nosso guia de scraping educado transforma isso em regras concretas de cadência.

Para equipes que desejam conformidade tratada por padrão, uma Scraper API pode ler e respeitar robots.txt como parte da solicitação, junto com uma limitação de taxa sensata - assim, a boa cidadania é o comportamento padrão da ferramenta, não uma caixa de seleção que você pode esquecer. Também mantém uma pegada limpa e declarada em vez de um script bruto martelando de um IP.

Colete dados públicos de forma compatível

Perguntas frequentes

robots.txt se aplica legalmente ao web scraping?

Não por si só. robots.txt é uma convenção voluntária (RFC 9309), não uma lei ou um contrato, e não bloqueia tecnicamente o acesso. Mas ignorá-lo pode alimentar reivindicações de termos de serviço, invasão ou uso indevido de computador e convida bloqueios e escrutínio. Trate-o como um piso ético a ser honrado e lide com as questões legais reais - dados pessoais, contratos - separadamente. Isto não é um conselho legal.

Como eu leio o robots.txt de um site?

Envie um HTTP GET para a raiz do domínio com /robots.txt anexado, por exemplo, https://example.com/robots.txt. curl ou qualquer cliente HTTP funciona; em Python, urllib.robotparser o analisa e responde can_fetch() para um determinado agente de usuário e URL. Um 404 significa que o site não tem robots.txt e não declarou preferência de rastreamento.

O que significa Disallow: /?

Ele pede a todos os bots correspondentes para não rastrear nenhum caminho no site - todo o domínio está fora dos limites por solicitação. Um Disallow: vazio significa o oposto: tudo é permitido. Lembre-se de que são pedidos para rastreadores bem-comportados, não barreiras impostas, e que os valores dos caminhos diferenciam maiúsculas de minúsculas enquanto os nomes das diretivas não.

Posso ignorar robots.txt se os dados forem públicos?

Tecnicamente você pode, já que não é imposto, mas geralmente não deveria. Ignorá-lo é má cidadania, faz você ser bloqueado mais rápido e pode fortalecer o argumento de um site contra você em uma disputa. A abordagem profissional é respeitá-lo, rastrear apenas caminhos públicos permitidos, cadenciar suas solicitações e manter dados pessoais totalmente fora de escopo.

robots.txt é um pequeno arquivo que carrega um grande sinal: aqui está como este site deseja ser rastreado. Leia-o primeiro, honre os caminhos e o ritmo, declare quem você é, e você pode coletar os dados públicos que precisa enquanto permanece firmemente do lado certo tanto da etiqueta quanto do risco.

Experimente a Scraper API com rastreamento consciente de robots