# robots.txt per il Web Scraping: Cosa Vincola, Cosa No

robots.txt è una convenzione, non un contratto - e non un blocco. Ecco cosa chiede effettivamente a uno scraper, cosa non può imporre e come rispettarlo pur ottenendo dati.

Ogni conversazione sull'etica dello scraping inizia con **robots.txt**, e la maggior parte di esse sbaglia in una delle due direzioni - trattandolo come una legge per cui verrai arrestato se la infrangi, o come un rumore che puoi ignorare completamente. Non è né l'una né l'altra. robots.txt è una convenzione volontaria che indica ai bot ben educati quali percorsi un sito preferirebbe che lasciassero in pace. Sapere esattamente cosa vincola e cosa no è ciò che separa un'operazione di dati professionale da una sconsiderata. Questa è una guida per i praticanti, e una nota iniziale: questa è informativa, non un consiglio legale.

## Cos'è effettivamente robots.txt

robots.txt implementa il Robots Exclusion Protocol, standardizzato nel 2022 come RFC 9309. È un file di testo semplice che si trova alla radice di un dominio - `https://example.com/robots.txt` - con un file per dominio o sottodominio. È opzionale: un `404` significa semplicemente che il sito non ha file e non ha espresso preferenze. Fondamentalmente, è una richiesta, non una barriera. Nulla nel servire un robots.txt impedisce tecnicamente l'accesso; si basa sulla buona fede dei bot che lo leggono.

Leggerlo è una singola richiesta - fallo prima di eseguire qualsiasi crawling, ogni volta:

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

## Le direttive che contano

Il vocabolario è ridotto. Impara queste e potrai leggere qualsiasi robots.txt a colpo d'occhio:

- `User-agent` - quale bot le regole seguenti mirano. `*` significa ogni bot; un nome come `Googlebot` ne mira uno. I nomi delle direttive non sono sensibili alle maiuscole, ma i valori dei percorsi lo sono: `/Private/` non è `/private/`.
- `Disallow` - un prefisso di percorso da non eseguire il crawling. `Disallow: /admin/` blocca quella cartella e tutto ciò che vi è sotto. `Disallow: /` blocca l'intero sito; un `Disallow:` vuoto consente tutto.
- `Allow` - un'eccezione non standard ma universalmente rispettata che ri-permette un percorso all'interno di uno non consentito.
- `Crawl-delay` - un suggerimento non standard che chiede N secondi tra le richieste. Onoralo: ignorarlo è uno dei modi più rapidi per essere segnalati.
- `Request-rate` e `Visit-time` - direttive rare che limitano le richieste per intervallo o restringono il crawling a certe ore UTC.
- `Sitemap` - un URL assoluto alla sitemap XML. Non una restrizione, un dono: mappa la struttura del sito per te.

Un avvertimento sulla sintassi: i caratteri jolly `*` e `$` nei modelli di percorso non sono nello standard originale, ma ogni motore principale li rispetta, quindi `Disallow: /*.pdf$` è comune ed efficace nella pratica.

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

![Due pannelli su robots.txt: cosa è, una convenzione volontaria standardizzata come RFC 9309 e un segnale di frequenza da rispettare, e cosa non è, un lucchetto che blocca l'accesso o un contratto vincolante di per sé; la scheda spunta come reali la convenzione e il Crawl-delay, e barra la forza legale e il controllo degli accessi.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335202/blog/generated/qp-b9-072-diag1.png)
*robots.txt è un segnale da rispettare, non un blocco che ti ferma o un contratto che ti vincola da solo.*

## Cosa vincola - e cosa no

Questa è la parte che le persone hanno più bisogno di chiarire. robots.txt non è, di per sé, legalmente vincolante, e non è un meccanismo tecnico di controllo degli accessi - non blocca nulla. I tribunali hanno generalmente trattato i dati pubblici ben noti come pubblici. Ma 'non una legge di per sé' non è lo stesso di 'nessuna conseguenza'. Ignorare i desideri dichiarati di un sito può diventare un fattore in termini di servizio, argomenti di violazione o uso improprio del computer, invita blocchi e maggiore attenzione, ed è semplicemente una cattiva cittadinanza. La posizione pragmatica: trattare robots.txt come un minimo etico che onori, e trattare le vere questioni legali - dati personali, contratti, giurisdizione - come una questione separata da risolvere correttamente. La nostra panoramica su [legalità del web scraping nel 2026](https://quantumproxies.io/blog/is-web-scraping-legal-2026) copre queste separatamente.

## Il cambiamento del crawler AI

robots.txt ha assunto una seconda vita come canale di opt-out per l'addestramento AI. I siti ora aggiungono regole esplicite per gli user agent AI - `GPTBot`, `Google-Extended`, `CCBot`, `ClaudeBot`, `PerplexityBot` e altri - per dire 'indicizzami, ma non addestrarti su di me'. Questo è il motivo per cui i ricercatori ora sostengono che robots.txt non è più sufficiente da solo per tenere i dati pubblici fuori dai modelli: dipende interamente da ciascun crawler scegliere di obbedire, e parla solo agli agenti dichiarati e ben educati. Se operi un crawler, dichiarare un User-Agent onesto e rispettare questi opt-out è il minimo. Il file compagno emergente per l'intento opposto - invitare gli strumenti AI - è llms.txt, che trattiamo nella nostra [guida a 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
```

![Un crawl conforme in quattro passaggi: scaricare robots.txt prima di ogni altra cosa, far corrispondere lo User-agent dichiarato, rispettare il Crawl-delay tra le richieste e fare scraping solo dei percorsi pubblici consentiti; la scheda mostra cosa risponde il robotparser di Python: can_fetch per un percorso, crawl_delay in secondi e un 404 che significa nessuna preferenza dichiarata.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335202/blog/generated/qp-b9-072-diag2.png)
*Un crawl conforme legge prima il file, rispetta le direttive di frequenza e tocca solo i percorsi pubblici consentiti.*

## Essere un buon cittadino pur ottenendo dati

Rispettare robots.txt e raccogliere i dati pubblici di cui hai bisogno non sono in conflitto. Le discipline che ti mantengono ben accetto sono le stesse che ti mantengono non bloccato: onora `Crawl-delay` e dosa le tue richieste, identifica onestamente il tuo bot, cache in modo aggressivo per non ri-recuperare mai la stessa pagina e evita gli endpoint costosi che un sito sta cercando di proteggere. La norma della comunità, ben espressa nei forum, è che robots.txt esiste principalmente per scoraggiare i bot che generano traffico schiacciante - quindi non essere quel bot. La nostra [guida allo scraping educato](https://quantumproxies.io/blog/polite-scraping-rate-limiting-guide) trasforma questo in regole concrete di dosaggio.

Per i team che vogliono che la conformità sia gestita di default, un [Scraper API](https://quantumproxies.io/scraper-api) può leggere e rispettare robots.txt come parte della richiesta, insieme a un ragionevole rate limiting - quindi la buona cittadinanza è il comportamento predefinito dello strumento, non una casella di controllo che potresti dimenticare. Mantiene anche un'impronta pulita e dichiarata piuttosto che uno script grezzo che martella da un IP.

[Raccogli dati pubblici nel modo conforme](https://quantumproxies.io/scraper-api)

## Domande frequenti

### robots.txt si applica legalmente al web scraping?

Non da solo. robots.txt è una convenzione volontaria (RFC 9309), non una legge o un contratto, e non blocca tecnicamente l'accesso. Ma ignorarlo può alimentare rivendicazioni di termini di servizio, violazione o uso improprio del computer e invita blocchi e controlli. Trattalo come un minimo etico da onorare e gestisci le vere questioni legali - dati personali, contratti - separatamente. Questo non è un consiglio legale.

### Come leggo il robots.txt di un sito web?

Invia un HTTP GET alla radice del dominio con `/robots.txt` aggiunto, ad esempio `https://example.com/robots.txt`. cURL o qualsiasi client HTTP funziona; in Python, `urllib.robotparser` lo analizza e risponde `can_fetch()` per un dato user agent e URL. Un `404` significa che il sito non ha robots.txt e non ha dichiarato preferenze di crawling.

### Cosa significa Disallow: /?

Chiede a tutti i bot corrispondenti di non eseguire il crawling di alcun percorso sul sito - l'intero dominio è off-limits su richiesta. Un `Disallow:` vuoto significa il contrario: tutto è consentito. Ricorda che queste sono richieste per i crawler ben educati, non barriere imposte, e che i valori dei percorsi sono sensibili alle maiuscole mentre i nomi delle direttive non lo sono.

### Posso ignorare robots.txt se i dati sono pubblici?

Tecnicamente puoi, poiché non è imposto, ma generalmente non dovresti. Ignorarlo è una cattiva cittadinanza, ti fa bloccare più velocemente e può rafforzare l'argomento di un sito contro di te in una disputa. L'approccio professionale è rispettarlo, eseguire lo scraping solo dei percorsi pubblici consentiti, dosare le tue richieste e tenere i dati personali completamente fuori dall'ambito.

robots.txt è un piccolo file che porta un grande segnale: ecco come questo sito vuole essere esplorato. Leggilo prima, rispetta i percorsi e il dosaggio, dichiara chi sei, e puoi raccogliere i dati pubblici di cui hai bisogno rimanendo fermamente dalla parte giusta sia dell'etichetta che del rischio.

[Prova lo Scraper API con crawling consapevole di robots](https://quantumproxies.io/scraper-api)
