Torna al blog

Robots.txt e proxy: come analizzare i concorrenti legalmente senza ricevere un ban dal sito

Guida completa al parsing etico tramite proxy: come rispettare robots.txt, evitare blocchi e raccogliere dati dei concorrenti senza rischi legali.

📅5 marzo 2026
```html

Il parsing dei dati dei concorrenti è una pratica comune per marketer, venditori di marketplace e agenzie. Monitorate i prezzi su Wildberries, raccogliete annunci da Avito, analizzate l'assortimento dei concorrenti. Ma la maggior parte dei siti blocca le richieste massicce e ignorare il file robots.txt può portare a problemi legali. In questo articolo vedremo come utilizzare i proxy per fare scraping in modo etico: rispettare le regole dei siti, evitare blocchi e raccogliere dati senza rischi per il business.

Cos'è robots.txt e a cosa serve ai siti

Il file robots.txt è un documento di testo nella radice del sito che informa i robot dei motori di ricerca e i parser su quali sezioni possono essere scansionate e quali sono vietate. Ad esempio, un negozio online può vietare l'indicizzazione del carrello o dell'area personale, affinché queste pagine non vengano incluse in Google.

Un tipico file robots.txt appare così:

User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /api/
Crawl-delay: 10

User-agent: Googlebot
Allow: /

Sitemap: https://example.com/sitemap.xml

Analisi delle direttive:

  • User-agent: * — regole per tutti i bot (l'asterisco significa "qualsiasi bot")
  • Disallow: /admin/ — vietato scansionare la sezione /admin/
  • Crawl-delay: 10 — ritardo di 10 secondi tra le richieste
  • User-agent: Googlebot — regole speciali per Google (tutto è consentito)

Perché i siti utilizzano robots.txt:

  1. Protezione dal sovraccarico del server — il parsing massivo crea un carico sul server, rallentando il lavoro per gli utenti reali
  2. Nascondere pagine tecniche — carrelli, moduli di pagamento, endpoint API non devono essere indicizzati
  3. Protezione dei dati commerciali — i marketplace non vogliono che i concorrenti possano facilmente scaricare l'intero catalogo prodotti
  4. Risparmio di traffico — ogni richiesta del bot costa denaro al proprietario del sito

Importante: robots.txt è una raccomandazione, non una barriera tecnica. Il file non blocca fisicamente l'accesso, ma ignorare le regole può portare al blocco del tuo IP o a cause legali (soprattutto negli Stati Uniti e in Europa).

Il parsing dei dati si trova in una zona grigia della legislazione. In diversi paesi ci sono regole diverse, ma ci sono principi comuni che è importante conoscere per non ricevere una causa legale.

Legislazione russa

In Russia non esiste una legge specifica sul parsing, ma si applicano norme generali:

  • Copyright (Codice Civile della Federazione Russa, articolo 1259) — non è possibile copiare testi unici, fotografie, descrizioni di prodotti senza il permesso del titolare dei diritti. Il parsing dei prezzi e delle caratteristiche è generalmente sicuro, poiché si tratta di dati fattuali.
  • Dati personali (152-FZ) — è vietato raccogliere dati personali degli utenti (nome, telefono, email) senza consenso. Questo riguarda il parsing dei profili dei social media o delle banche dati di contatti.
  • Concorrenza sleale (articolo 14.33 del Codice Amministrativo della Federazione Russa) — se il parsing viene utilizzato per copiare un modello di business o ingannare i clienti, si può ricevere una multa fino a 500.000 rubli.

Legislazione degli Stati Uniti e dell'Europa

Negli Stati Uniti e nell'UE le leggi sono più severe:

  • CFAA (Computer Fraud and Abuse Act, USA) — l'accesso non autorizzato ai sistemi informatici è considerato un crimine. La violazione di robots.txt può essere interpretata come "accesso non autorizzato". Un caso noto: LinkedIn contro hiQ Labs (2022) — il tribunale ha stabilito che il parsing dei dati pubblici è legale, ma ignorare le barriere tecniche (ad esempio, CAPTCHA) non lo è.
  • GDPR (Regolamento Generale sulla Protezione dei Dati, UE) — è vietata la raccolta di dati personali dei cittadini dell'UE senza esplicito consenso. Sanzioni fino a 20 milioni di euro o il 4% del fatturato annuo dell'azienda.
  • Terms of Service (Contratti di Servizio) — molti siti vietano esplicitamente il parsing nelle loro regole. La violazione può portare a una causa legale per violazione del contratto.

Consiglio pratico: Prima di fare scraping, controlla tre documenti: robots.txt, Terms of Service e Privacy Policy del sito target. Se il parsing è esplicitamente vietato, cerca fonti alternative di dati (API pubbliche, programmi di affiliazione, dataset pronti).

Cosa è sicuro fare scraping

Tipo di dati Rischio Commento
Prezzi dei prodotti Basso Dati fattuali, non protetti da copyright
Caratteristiche dei prodotti Basso Dati tecnici sono sicuri
Descrizioni uniche Alto Protetti da copyright
Foto dei prodotti Alto Necessita del permesso del titolare dei diritti
Contatti degli utenti Critico Violazione del 152-FZ e GDPR
Statistiche pubbliche Basso Dati aperti sono sicuri

Parsing etico: come raccogliere dati senza violazioni

Il parsing etico è un equilibrio tra obiettivi aziendali e rispetto per i proprietari dei siti. Puoi raccogliere i dati necessari senza creare problemi alla risorsa target e senza violare le leggi.

Principi fondamentali del parsing etico

  1. Rispetta robots.txt — se una sezione è vietata per il parsing, non cercare di aggirarla. Cerca fonti alternative di dati.
  2. Limita la velocità delle richieste — non inviare 1000 richieste al secondo. Fai pause di 2-10 secondi tra le richieste per non sovraccaricare il server.
  3. Utilizza l'User-Agent del tuo parser — non mascherarti da utente normale. Indica un User-Agent onesto, ad esempio: "MyCompanyParser/1.0 (contact@mycompany.com)". Questo consente agli amministratori del sito di contattarti in caso di problemi.
  4. Fai scraping solo di dati pubblici — non cercare di accedere a sezioni chiuse, API o database.
  5. Non rivendere i dati copiati — utilizza le informazioni raccolte per scopi interni (analisi dei concorrenti, monitoraggio dei prezzi), non per creare un servizio concorrente.
  6. Cache i dati — non richiedere la stessa pagina più volte. Salva i risultati localmente e aggiornali secondo un programma (una volta al giorno, una volta alla settimana).

Quando NON fare scraping

Ci sono situazioni in cui il parsing crea più problemi che benefici:

  • Il sito fornisce API — molti marketplace (Wildberries, Ozon, Yandex.Market) hanno API ufficiali per i partner. Utilizzale invece del parsing — è più veloce, legale e affidabile.
  • I dati sono protetti da CAPTCHA o autenticazione — aggirare la protezione può essere considerato un hacking del sistema.
  • Il sito vieta esplicitamente il parsing nei Terms of Service — il rischio di una causa legale è troppo alto.
  • Stai raccogliendo dati personali — questo viola il GDPR e il 152-FZ con enormi multe.

Come leggere e rispettare correttamente robots.txt

Il file robots.txt si trova nella radice del dominio: https://example.com/robots.txt. Prima di iniziare il parsing, controlla sempre questo file.

Direttive principali di robots.txt

Direttiva Significato Esempio
User-agent Per quale bot si applicano le regole User-agent: * (tutti i bot)
Disallow Sezioni vietate per il parsing Disallow: /admin/
Allow Sezioni consentite (eccezione a Disallow) Allow: /public/
Crawl-delay Ritardo minimo tra le richieste (in secondi) Crawl-delay: 10
Sitemap Link alla mappa del sito (elenco di tutte le pagine) Sitemap: /sitemap.xml

Esempi di robots.txt e come interpretarli

Esempio 1: Divieto totale di scraping

User-agent: *
Disallow: /

Questo significa: "A tutti i bot è vietato scansionare l'intero sito". Fare scraping di un tale sito è una violazione delle regole del proprietario. Cerca fonti alternative di dati.

Esempio 2: Limitazioni selettive

User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /cart/
Allow: /products/
Crawl-delay: 5

Questo significa: "È possibile fare scraping della sezione /products/ (prodotti), ma sono vietati /admin/, /api/ e /cart/. Fai una pausa di 5 secondi tra le richieste". Queste sono condizioni normali — è possibile fare scraping dei prodotti rispettando i limiti.

Esempio 3: Regole per bot specifici

User-agent: Googlebot
Allow: /

User-agent: *
Disallow: /
Crawl-delay: 10

Questo significa: "Google può scansionare l'intero sito, ma tutti gli altri bot no". Se non sei Google, il parsing è vietato.

Come controllare robots.txt prima del parsing

La maggior parte dei linguaggi di programmazione ha librerie per controllare automaticamente robots.txt. Ecco un esempio in Python:

from urllib.robotparser import RobotFileParser

rp = RobotFileParser()
rp.set_url("https://example.com/robots.txt")
rp.read()

# Controlliamo se è possibile fare scraping della pagina
url = "https://example.com/products/item123"
user_agent = "MyParser/1.0"

if rp.can_fetch(user_agent, url):
    print("Scraping consentito")
else:
    print("Scraping vietato da robots.txt")

Questo controllerà automaticamente le regole e indicherà se è possibile fare scraping di un URL specifico.

Rate Limiting e ritardi tra le richieste

Il Rate Limiting (limitazione della velocità delle richieste) è una protezione dei siti contro il sovraccarico. Se invii troppe richieste in un breve periodo, il server può bloccare il tuo IP o mostrare CAPTCHA.

Perché è importante rispettare i ritardi

  • Evita il blocco dell'IP — i siti monitorano la frequenza delle richieste da un singolo IP. Se invii 100 richieste al minuto, verrai bloccato come bot.
  • Riduci il carico sul server — il parsing massivo può "far crollare" il sito, soprattutto se si tratta di una piccola risorsa su un hosting economico.
  • Rispetta il Crawl-delay di robots.txt — se il sito ha indicato un ritardo di 10 secondi, ignorare questa regola è non etico.
  • Comportamento più naturale — gli utenti normali non aprono 10 pagine al secondo. I ritardi fanno sembrare il tuo parser un vero essere umano.

Ritardi raccomandati per diversi compiti

Tipo di scraping Ritardo tra le richieste Commento
Sito piccolo (fino a 1000 pagine) 5-10 secondi Bassa potenza del server
Sito medio (negozio online) 2-5 secondi Equilibrio ottimale
Marketplace grande (Wildberries, Ozon) 1-3 secondi Infrastruttura potente, ma forte protezione
API-endpoint Secondo i limiti API (di solito 10-100 richieste/min) Controlla la documentazione API
Social media (Instagram, VK) 10-30 secondi Limiti molto severi, alto rischio di ban

Come implementare i ritardi nel codice

Ecco un esempio in Python utilizzando la libreria time:

import time
import requests

urls = [
    "https://example.com/product1",
    "https://example.com/product2",
    "https://example.com/product3"
]

for url in urls:
    response = requests.get(url)
    print(f"Scraping: {url}")
    
    # Ritardo di 3 secondi prima della prossima richiesta
    time.sleep(3)

Per scenari più complessi, utilizza ritardi casuali (random delay) per rendere il comportamento ancora più naturale:

import time
import random

for url in urls:
    response = requests.get(url)
    
    # Ritardo casuale da 2 a 5 secondi
    delay = random.uniform(2, 5)
    time.sleep(delay)

Rotazione dei proxy per un parsing etico

Anche se rispetti robots.txt e fai ritardi, il parsing di un grande volume di dati da un singolo IP può suscitare sospetti. La rotazione dei proxy aiuta a distribuire le richieste tra diversi indirizzi IP, simulando il comportamento di molti utenti reali.

Perché è necessaria la rotazione dei proxy

  • Superare il Rate Limiting — se il limite è di 100 richieste/ora da un singolo IP, 10 proxy ti daranno 1000 richieste/ora.
  • Distribuzione geografica — per fare scraping di dati regionali (prezzi su Wildberries a Mosca e Vladivostok) hai bisogno di proxy da diverse città.
  • Ridurre i sospetti — le richieste da diversi IP sembrano traffico di utenti reali.
  • Riserva — se un proxy viene bloccato, il parser passa automaticamente a un altro.

Quali proxy utilizzare per un parsing etico

Tipo di proxy Vantaggi Svantaggi Quando utilizzare
Residenziali IP reali di utenti domestici, basso rischio di ban Più costosi rispetto ad altri tipi Scraping di social media, marketplace con forte protezione
Mobili IP di operatori mobili, massima fiducia I più costosi, meno IP disponibili Scraping di Instagram, TikTok, applicazioni mobili
Data Center Economici, alta velocità Facilmente rilevabili, spesso nelle liste nere Scraping di siti semplici, test

Raccomandazione per un parsing etico: Utilizza proxy residenziali con rotazione automatica. Offrono un equilibrio tra costo e affidabilità, e i loro IP sembrano utenti normali.

Strategie di rotazione dei proxy

  1. Rotazione per ogni richiesta — ogni richiesta viene effettuata con un nuovo IP. Adatto per scraping di siti con limiti severi (social media, marketplace).
  2. Rotazione temporale (ogni 5-10 minuti) — un IP viene utilizzato per diverse richieste, poi cambia. Comportamento più naturale.
  3. Sticky sessions (sessioni sticky) — un IP viene utilizzato per l'intera sessione dell'utente (ad esempio, autenticazione + scraping dell'area personale). Essenziale per siti con autenticazione.
  4. Rotazione geografica — per ogni regione viene utilizzato un proxy di quella regione. Esempio: scraping dei prezzi su Wildberries a Mosca — proxy da Mosca.

Esempio di rotazione dei proxy in Python

import requests
import random
import time

# Lista dei proxy (sostituisci con quelli reali)
proxies_list = [
    {"http": "http://user:pass@proxy1.example.com:8080"},
    {"http": "http://user:pass@proxy2.example.com:8080"},
    {"http": "http://user:pass@proxy3.example.com:8080"}
]

urls = [
    "https://example.com/product1",
    "https://example.com/product2",
    "https://example.com/product3"
]

for url in urls:
    # Scegli un proxy casuale
    proxy = random.choice(proxies_list)
    
    try:
        response = requests.get(url, proxies=proxy, timeout=10)
        print(f"Scraping {url} tramite {proxy}")
    except Exception as e:
        print(f"Errore con il proxy {proxy}: {e}")
    
    # Ritardo di 3 secondi
    time.sleep(3)

Casi pratici: scraping di marketplace e concorrenti

Esaminiamo scenari reali di parsing etico per il business.

Caso 1: Monitoraggio dei prezzi su Wildberries

Obiettivo: Vendi prodotti su Wildberries e desideri monitorare i prezzi dei concorrenti per adeguare i tuoi.

Problemi:

  • Wildberries blocca l'IP per richieste frequenti
  • I prezzi dipendono dalla regione di consegna
  • È necessario fare scraping di 100-500 prodotti quotidianamente

Soluzione etica:

  1. Controlla robots.txt — Wildberries consente il parsing delle schede prodotto, ma vieta gli endpoint API.
  2. Utilizza proxy residenziali — per ogni regione (Mosca, San Pietroburgo, Novosibirsk) prendi proxy da quella regione.
  3. Rotazione per ogni richiesta — ogni prodotto viene parsato con un nuovo IP.
  4. Ritardo di 2-3 secondi — fai una pausa tra le richieste.
  5. Fai scraping una volta al giorno — non aggiornare i prezzi ogni ora, è sufficiente un monitoraggio quotidiano.

Risultato: Ottieni i prezzi attuali dei concorrenti senza blocchi. Wildberries non rileva un carico anomalo, poiché le richieste sono distribuite nel tempo e tra gli IP.

Caso 2: Scraping di annunci su Avito

Obiettivo: Sei un agente immobiliare e desideri raccogliere tutti gli annunci di vendita di appartamenti nella tua città per analizzare il mercato.

Problemi:

  • Avito mostra CAPTCHA in caso di attività sospetta
  • È necessario fare scraping di 5000+ annunci
  • I dati vengono aggiornati ogni giorno

Soluzione etica:

  1. Controlla robots.txt — Avito consente il parsing delle pagine degli annunci, ma con un limite di Crawl-delay: 5 secondi.
  2. Utilizza proxy residenziali — rotazione ogni 10 richieste (non per ogni richiesta, per non sembrare sospetto).
  3. Ritardo di 5-7 secondi — rispetta il Crawl-delay di robots.txt.
  4. Fai scraping durante la notte — quando il carico sul sito è minimo (2-6 del mattino).
  5. Cache i dati — non fare scraping dello stesso annuncio due volte, salva i risultati in un database.

Risultato: Durante la notte raccogli tutti i nuovi annunci senza CAPTCHA e blocchi. Avito non subisce sovraccarico e ottieni i dati necessari.

Caso 3: Analisi dell'assortimento di un concorrente

Obiettivo: Sei il proprietario di un negozio online di elettronica e desideri sapere quali nuovi prodotti sono stati aggiunti dal concorrente.

Problemi:

  • Il sito del concorrente è su un hosting protetto con un sistema anti-bot
  • È necessario fare scraping di un catalogo di 10.000 prodotti
  • Vuoi farlo settimanalmente

Soluzione etica:

  1. Controlla robots.txt — è consentito il parsing di /catalog/, vietato /admin/ e /api/.
  2. Utilizza Sitemap — invece di visitare manualmente tutte le pagine, prendi l'elenco degli URL da sitemap.xml (è più veloce e non crea carico aggiuntivo).
  3. Proxy residenziali con rotazione ogni 5 minuti — un IP fa 20-30 richieste, poi cambia.
  4. Ritardo di 3-5 secondi — imita il comportamento di un normale utente.
  5. Fai scraping solo dei nuovi prodotti — confronta l'attuale catalogo con quello precedente e fai scraping solo delle modifiche.

Risultato: Ricevi settimanalmente un elenco delle novità del concorrente senza blocchi. Il sito del concorrente non ha problemi e ottieni un vantaggio competitivo.

Strumenti per l'automazione nel rispetto delle regole

Esistono strumenti pronti che semplificano il parsing etico e rispettano automaticamente robots.txt.

Scrapy (Python)

Scrapy è un framework popolare per il parsing in Python. Controlla automaticamente robots.txt e rispetta le regole.

Impostazione del rispetto di robots.txt in Scrapy:

# settings.py

# Abilitare il rispetto di robots.txt
ROBOTSTXT_OBEY = True

# Ritardo tra le richieste (in secondi)
DOWNLOAD_DELAY = 3

# Ritardo casuale (da 0.5 a 1.5 * DOWNLOAD_DELAY)
RANDOMIZE_DOWNLOAD_DELAY = True

# Limite di richieste simultanee a un dominio
CONCURRENT_REQUESTS_PER_DOMAIN = 1

# User-Agent del tuo parser
USER_AGENT = 'MyCompanyParser/1.0 (+http://mycompany.com/bot)'

Con queste impostazioni, Scrapy controllerà automaticamente robots.txt prima del parsing e rispetterà tutte le regole.

Apify (piattaforma cloud)

Apify è una piattaforma cloud per il web scraping senza codice. Crei il parser tramite un'interfaccia visiva, e Apify gestisce automaticamente i proxy e il rispetto dei limiti.

Vantaggi per il parsing etico:

  • Rotazione proxy integrata (residenziali e data center)
  • Rispetto automatico di robots.txt
  • Impostazione dei ritardi tramite interfaccia
  • Pianificazione dell'avvio (scraping una volta al giorno/settimana)

Octoparse (parser senza codice)

Octoparse è un'app desktop per il parsing senza programmazione. Adatta per marketer e venditori che non sanno scrivere codice.

Come impostare il parsing etico in Octoparse:

  1. Apri le impostazioni del task (Task Settings)
  2. Attiva "Respect robots.txt"
  3. Imposta un ritardo (Delay) di 3-5 secondi
  4. Collega i proxy nella sezione "Proxy Settings"
  5. Imposta la pianificazione dell'avvio (Schedule)

Puppeteer/Playwright (JavaScript)

Puppeteer e Playwright sono librerie per l'automazione del browser. Sono adatte per il parsing di siti con rendering JavaScript.

Esempio di parsing etico con Puppeteer:

const puppeteer = require('puppeteer');
const robotsParser = require('robots-parser');

async function ethicalScrape(url) {
  // Controlliamo robots.txt
  const robots = robotsParser('https://example.com/robots.txt', 
    'MyParser/1.0');
  
  if (!robots.isAllowed(url)) {
    console.log('Scraping vietato da robots.txt');
    return;
  }
  
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  // Ritardo prima di caricare la pagina
  await new Promise(resolve => setTimeout(resolve, 3000));
  
  await page.goto(url);
  const data = await page.evaluate(() => {
    return document.querySelector('h1').innerText;
  });
  
  console.log(data);
  await browser.close();
}

ethicalScrape('https://example.com/product1');

Conclusione

Il parsing etico tramite proxy è un equilibrio tra obiettivi aziendali e rispetto per i proprietari dei siti. Rispettando robots.txt, facendo ritardi tra le richieste e utilizzando la rotazione dei proxy, puoi raccogliere i dati necessari senza rischi legali e blocchi. Principi principali: controlla robots.txt prima del parsing, limita la velocità delle richieste, utilizza un User-Agent onesto e fai scraping solo di dati pubblici. Questo proteggerà il tuo business da cause legali e garantirà un funzionamento stabile dei parser.

Se intendi fare scraping di marketplace, siti concorrenti o raccogliere dati per analisi di mercato, ti consigliamo di utilizzare proxy residenziali con rotazione automatica. Essi garantiscono...

```