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:
# 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
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 comeGooglebotne 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; unDisallow: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-rateeVisit-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.
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

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

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 trasforma questo in regole concrete di dosaggio.
Per i team che vogliono che la conformità sia gestita di default, un 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
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.