# 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:

```bash
# 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@residentialpremium.quantumproxies.io:8080 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:

- `User-agent` - qual bot as regras seguintes visam. `*` significa todos os bots; um nome como `Googlebot` visa um. Os nomes das diretivas não diferenciam maiúsculas de minúsculas, mas os valores dos caminhos diferenciam: `/Private/` não é `/private/`.
- `Disallow` - um prefixo de caminho a não rastrear. `Disallow: /admin/` bloqueia essa pasta e tudo abaixo dela. `Disallow: /` bloqueia todo o site; um `Disallow:` vazio permite tudo.
- `Allow` - uma exceção não padrão, mas universalmente honrada, que permite novamente um caminho dentro de um proibido.
- `Crawl-delay` - uma dica não padrão pedindo N segundos entre solicitações. Honre-a: ignorá-la é uma das maneiras mais rápidas de ser marcado.
- `Request-rate` e `Visit-time` - diretivas raras que limitam solicitações por intervalo ou restringem o rastreamento a certas horas UTC.
- `Sitemap` - uma URL absoluta para o sitemap XML. Não é uma restrição, é um presente: mapeia a estrutura do site para você.

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.

```python
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
```

![Dois painéis sobre o robots.txt: o que ele é, uma convenção voluntária padronizada como RFC 9309 e um sinal de taxa a respeitar, e o que ele não é, uma fechadura que bloqueia o acesso ou um contrato que vincula por si só; o quadro marca convenção e Crawl-delay como reais e risca força legal e controle de acesso.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335202/blog/generated/qp-b9-072-diag1.png)
*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](https://quantumproxies.io/blog/is-web-scraping-legal-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](https://quantumproxies.io/blog/llms-txt-guide-ai-crawlers).

```bash
# 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
```

![Um rastreamento em conformidade em quatro etapas: buscar o robots.txt antes de qualquer outra coisa, encontrar o seu User-agent declarado, respeitar o Crawl-delay entre solicitações e coletar apenas caminhos públicos permitidos; o quadro mostra o que o robotparser do Python responde: can_fetch para um caminho, crawl_delay em segundos e um 404 que significa nenhuma preferência declarada.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335202/blog/generated/qp-b9-072-diag2.png)
*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](https://quantumproxies.io/blog/polite-scraping-rate-limiting-guide) transforma isso em regras concretas de cadência.

Para equipes que desejam conformidade tratada por padrão, uma [Scraper API](https://quantumproxies.io/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](https://quantumproxies.io/scraper-api)

## 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](https://quantumproxies.io/scraper-api)
