Torna al blog

Raccolta di dati per dataset di machine learning: come estrarre migliaia di pagine senza blocchi e CAPTCHA

Analizziamo come raccogliere grandi volumi di dati per dataset ML senza divieti e CAPTCHA: quali proxy scegliere e come organizzare il processo.

📅14 marzo 2026
```html

La qualità del modello ML dipende direttamente dalla qualità e dal volume dei dati di addestramento. Ma non appena inizi a raccogliere migliaia di pagine, i siti iniziano a bloccare le richieste, a mostrare captcha e a bannare l'IP. In questo articolo analizzeremo come costruire un pipeline affidabile per la raccolta di dati per dataset: quali strumenti utilizzare, come aggirare le protezioni e quale tipo di proxy è adatto per ogni compito.

Perché i siti bloccano la raccolta di dati e cosa fare

Quando avvii la raccolta automatica di dati, il sito vede non un utente normale, ma un flusso di richieste da un unico indirizzo IP. Questo solleva immediatamente bandiere rosse nei sistemi di protezione — Cloudflare, DataDome, PerimeterX e altre soluzioni anti-bot. Risultato: captcha, blocco temporaneo o ban completo dell'IP.

Il problema è particolarmente acuto per i progetti ML, perché il dataset richiede non 100 pagine, ma decine di migliaia. Per addestrare anche un semplice modello di classificazione del testo sono necessari almeno 5.000–10.000 esempi. Per la visione artificiale — centinaia di migliaia di immagini. Raccogliere tale volume da un unico IP è fisicamente impossibile.

I sistemi di protezione analizzano i seguenti parametri:

  • Frequenza delle richieste — più di 10–20 richieste al minuto da un unico IP è già sospetto.
  • User-Agent e intestazioni — le intestazioni standard dei parser sono facilmente riconoscibili.
  • Assenza di cookie e dati di sessione — un browser reale porta sempre con sé la cronologia.
  • Geolocalizzazione dell'IP — un IP di un data center dei Paesi Bassi su un sito in lingua russa appare sospetto.
  • Pattern di comportamento — una persona legge una pagina per 30–60 secondi, un bot per 0,3 secondi.

La soluzione è una combinazione di proxy appropriati, rotazione degli IP e simulazione del comportamento di un utente reale. Analizziamo ogni elemento in dettaglio.

Da dove provengono i dati per ML-dataset: fonti principali

Prima di parlare degli strumenti, è importante capire da dove provengono i dati per addestrare i modelli. Le fonti si dividono in diverse categorie, e per ciascuna è necessario un approccio specifico.

Dataset aperti (senza parsing)

La prima cosa da controllare sono i dataset aperti già esistenti. Kaggle, Hugging Face Datasets, Google Dataset Search, UCI Machine Learning Repository contengono migliaia di set di dati pronti. Se il tuo compito è standard (classificazione del testo, riconoscimento di oggetti, analisi del sentiment), è possibile che il dataset esista già. Questo fa risparmiare settimane di lavoro.

Web parsing (richiede proxy)

Quando i dati pronti non ci sono o non si adattano alla tua specifica — è necessario il parsing. Compiti tipici:

  • Raccolta di recensioni da Wildberries, Ozon, Yandex.Market per analisi del sentiment
  • Parsing di siti di notizie per addestrare modelli linguistici
  • Raccolta di immagini di prodotti per modelli di visione artificiale
  • Parsing di offerte di lavoro da hh.ru, SuperJob per modelli HR
  • Raccolta di dati sui prezzi da marketplace per modelli previsionali
  • Parsing di social media (VKontakte, Twitter/X) per compiti NLP

API di piattaforme (parzialmente chiuse)

Alcune piattaforme forniscono API ufficiali — Twitter/X API, Reddit API, Google Places API. Problema: sono costose, hanno limiti e spesso non forniscono il volume di dati necessari gratuitamente. Pertanto, molti team ML combinano API con parsing.

Dati sintetici

Un approccio separato è la generazione di dati sintetici utilizzando GPT-4 o altri LLM. Ma per questo sono comunque necessari dati reali come base (esempi few-shot). Pertanto, il parsing rimane lo strumento di base per la raccolta di dati per la maggior parte dei progetti ML.

Strumenti per la raccolta di dati senza scrivere codice

Buone notizie: per raccogliere dati per ML-dataset non è necessario essere uno sviluppatore. Esistono strumenti no-code e low-code pronti che possono lavorare con proxy e aggirare le protezioni di base.

Parser no-code

Strumento Per cosa è adatto Supporto proxy Difficoltà
Octoparse Siti, tabelle, paginazione ✅ Sì Bassa
ParseHub Siti dinamici (JS) ✅ Sì Bassa
Apify Attori pronti per 100+ siti ✅ Integrato Media
Bright Data IDE Siti complessi e protetti ✅ Integrato Media
Scrapy Cloud Parsing su larga scala ✅ Tramite middleware Alta

Per la maggior parte delle attività di raccolta di dati ML, Octoparse o Apify sono sufficienti. Octoparse consente di configurare visivamente il parser in 20–30 minuti: indichi gli elementi sulla pagina, imposti la paginazione, inserisci i proxy — e avvii la raccolta. Il risultato viene esportato in CSV o JSON, che può essere utilizzato immediatamente per l'addestramento.

Apify è particolarmente utile se è necessario eseguire il parsing di piattaforme popolari: hanno attori pronti per Instagram, Twitter/X, Amazon, Google Maps, LinkedIn e decine di altri siti. Devi solo impostare i parametri — e ottieni dati strutturati.

Quale tipo di proxy scegliere per ML-dataset

La scelta del tipo di proxy è uno dei fattori chiave per il successo nella raccolta di dati. Un errore qui può costare caro: o verrai bloccato a metà strada, o pagherai troppo per una potenza non necessaria. Analizziamo tre tipi principali.

Proxy residenziali — per siti protetti

I proxy residenziali sono indirizzi IP di utenti domestici reali. Per i sistemi anti-bot, sono indistinguibili da un normale visitatore. Questo li rende ideali per il parsing di siti con protezioni serie: marketplace (Wildberries, Ozon), social media, aggregatori di notizie.

Il principale vantaggio per i compiti ML: è possibile raccogliere dati con geolocalizzazione. Se stai addestrando un modello su contenuti regionali, scegli proxy dalla regione desiderata della Russia o di un altro paese. Questo è particolarmente importante per compiti di classificazione geolocalizzata o analisi di dialetti regionali.

Proxy mobili — per social media e piattaforme mobili

I proxy mobili utilizzano IP di operatori mobili (4G/5G). Hanno il livello di fiducia più alto presso le piattaforme — perché un singolo IP mobile è realmente utilizzato da centinaia di persone contemporaneamente (tutti gli abbonati di una torre si connettono tramite un unico IP). Questo significa che anche la raccolta attiva di dati da un IP mobile appare normale.

I proxy mobili sono particolarmente necessari se stai raccogliendo dati da VKontakte, TikTok o Instagram — piattaforme che bloccano aggressivamente gli IP dei data center.

Proxy di data center — per fonti aperte e velocità

I proxy di data center sono veloci e economici. Non sono legati a utenti reali, quindi vengono riconosciuti più facilmente dai sistemi di protezione. Ma per molti compiti ML questo è sufficiente: se stai eseguendo il parsing di Wikipedia, archivi aperti, GitHub, API pubbliche o siti senza protezioni serie — i proxy di data center funzioneranno ottimamente e costeranno significativamente meno.

Come scegliere il tipo di proxy per il tuo compito ML:

  • Marketplace (Wildberries, Ozon, Avito): proxy residenziali con rotazione
  • Social media (VKontakte, Instagram, TikTok): proxy mobili
  • Siti di notizie, forum, Wikipedia: proxy di data center
  • Google Search, Yandex: proxy residenziali o mobili
  • Archivi aperti, Common Crawl: proxy di data center

Scenari pratici: testo, immagini, prezzi, recensioni

Analizziamo scenari specifici di raccolta dati per i tipi di compiti ML più popolari — con indicazione delle fonti, strumenti e tipo di proxy necessario.

Scenario 1: Dataset di recensioni per analisi del sentiment (NLP)

Compito: raccogliere 50.000 recensioni con valutazioni da Wildberries per addestrare un modello di classificazione del sentiment.

Fonte: Wildberries — recensioni sui prodotti con valutazioni da 1 a 5 stelle (la marcatura ideale è già presente).
Strumento: Octoparse o script pronto in Python con la libreria requests.
Proxy: Residenziali con rotazione — Wildberries blocca attivamente gli IP di data center.
Velocità di raccolta: 1 richiesta ogni 3–5 secondi con pause — 50.000 recensioni in 2–3 giorni.

Cosa ottieni: file CSV con colonne: testo della recensione, valutazione (1–5), categoria del prodotto, data. Questo è un dataset pronto per l'addestramento — la marcatura è già integrata nei dati.

Scenario 2: Dataset di immagini per visione artificiale

Compito: raccogliere 100.000 immagini di prodotti da diverse categorie per addestrare un modello di classificazione.

Fonte: Ozon, Yandex.Market — fotografie di prodotti con categorie.
Strumento: Apify (ci sono attori pronti per l'e-commerce) o ParseHub.
Proxy: Proxy residenziali con rotazione geografica in Russia.
Importante: Scarica le immagini tramite proxy, non direttamente — i server CDN possono anche bloccare caricamenti di massa.

Cosa ottieni: Cartelle con immagini, suddivise per categorie — una struttura che viene accettata direttamente da ImageDataGenerator in Keras o DataLoader in PyTorch.

Scenario 3: Corpo testuale per modello linguistico

Compito: raccogliere un ampio corpo di testi in lingua russa per il fine-tuning di un modello linguistico su un tema specifico — ad esempio, testi legali o articoli medici.

Fonte: Forum tematici, siti di notizie, Habr, portali professionali.
Strumento: Scrapy Cloud o Octoparse per raccolta strutturata.
Proxy: Proxy di data center con rotazione — la maggior parte dei siti testuali non ha protezioni rigide, e la velocità è più importante dell'anonimato.
Velocità: Con proxy di data center puoi effettuare 50–100 richieste al minuto e raccogliere un milione di documenti in pochi giorni.

Scenario 4: Dataset di offerte di lavoro per modello HR

Compito: raccogliere 200.000 offerte di lavoro da hh.ru per addestrare un modello di raccomandazione o classificazione delle professioni.

Fonte: hh.ru — hanno un'API ufficiale, ma con limiti. Per grandi volumi è necessario il parsing.
Strumento: Apify (c'è un attore per hh.ru) o Octoparse.
Proxy: Proxy residenziali — hh.ru è ben protetto e blocca gli IP di data center.
Cosa ottieni: Dati strutturati: titolo dell'offerta, descrizione, stipendio, requisiti, regione, settore — un ottimo dataset per NLP e sistemi di raccomandazione.

Come evitare i blocchi durante la raccolta di dati di massa

Anche con buoni proxy, puoi ricevere un ban se non segui le regole di base. Ecco metodi collaudati che aiutano a raccogliere dati in modo stabile e senza perdite.

Rotazione di IP e sessioni

La regola più importante: non utilizzare un solo IP per migliaia di richieste. Configura la rotazione in modo che ogni 10–50 richieste cambi l'IP. La maggior parte degli strumenti (Octoparse, Apify, Scrapy) supporta questo di default quando si collega un pool di proxy.

Inoltre, cambia i cookie di sessione insieme all'IP — questo simula un nuovo utente, non solo un cambio di indirizzo.

Ritardi corretti tra le richieste

Aggiungi ritardi casuali tra le richieste — non fissi 2 secondi, ma casuali da 1 a 5 secondi. Un intervallo fisso è facilmente identificabile come pattern di bot. Un intervallo casuale simula il comportamento umano.

Per siti particolarmente protetti, aggiungi pause più lunghe: ogni 100 richieste fai una pausa di 30–60 secondi. Questo riduce la velocità, ma riduce radicalmente il rischio di blocco.

Intestazioni delle richieste corrette

Imposta User-Agent su un browser attuale (Chrome, Firefox delle ultime versioni). Aggiungi intestazioni HTTP standard: Accept-Language, Accept-Encoding, Referer. L'assenza di queste intestazioni è un chiaro segnale di un bot per la maggior parte dei sistemi di protezione.

Raccolta in orari non lavorativi

Avvia la raccolta di massa di notte (dalle 2:00 alle 6:00 ora di Mosca). In questo momento, il traffico sui siti è minimo, i sistemi anti-bot sono meno aggressivi e le tue richieste costituiscono una percentuale maggiore del carico — il che paradossalmente riduce i sospetti, poiché c'è meno traffico concorrente.

Gestione degli errori e tentativi ripetuti

Imposta la gestione automatica dei codici di risposta:

  • 429 (Troppe richieste) — aumenta il ritardo, cambia l'IP, aspetta 5–10 minuti.
  • 403 (Vietato) — IP bloccato, cambia assolutamente proxy.
  • 503 (Servizio non disponibile) — sovraccarico temporaneo del server, ripeti dopo 1–2 minuti.
  • 200 con captcha — è necessario un proxy di qualità superiore (residenziale invece di data center).

Corrispondenza geografica tra proxy e sito

Utilizza proxy dello stesso paese del sito target. Se stai eseguendo il parsing di Wildberries, scegli IP russi. Se raccogli dati da un sito tedesco, hai bisogno di proxy tedeschi. La non corrispondenza della geolocalizzazione è uno dei trigger di blocco più comuni.

Checklist: configurazione del pipeline di raccolta dati per ML

Utilizza questa checklist prima di avviare qualsiasi raccolta di dati su larga scala per un dataset:

📋 Preparazione

  • ☐ Controllare la presenza di un dataset pronto su Kaggle / Hugging Face
  • ☐ Studiare il robots.txt del sito target
  • ☐ Determinare il volume dei dati e la struttura del dataset
  • ☐ Scegliere lo strumento di parsing (Octoparse, Apify, Scrapy)
  • ☐ Scegliere il tipo di proxy per il compito (residenziali / mobili / data center)

⚙️ Configurazione

  • ☐ Collegare un pool di proxy con rotazione IP
  • ☐ Impostare User-Agent (Chrome/Firefox attuale)
  • ☐ Aggiungere intestazioni HTTP standard
  • ☐ Impostare ritardi casuali (1–5 secondi)
  • ☐ Impostare la gestione degli errori (429, 403, 503)
  • ☐ Specificare il formato di esportazione dei dati (CSV, JSON, JSONL)

🧪 Test

  • ☐ Eseguire un test su 100–500 record
  • ☐ Controllare la qualità e la completezza dei dati
  • ☐ Assicurarsi che non ci siano blocchi sul volume di test
  • ☐ Controllare la velocità di raccolta e calcolare il tempo per l'intero dataset

🚀 Avvio e monitoraggio

  • ☐ Avviare di notte (02:00–06:00 MSK)
  • ☐ Impostare notifiche sugli errori
  • ☐ Controllare periodicamente la qualità dei dati raccolti
  • ☐ Salvare risultati intermedi (checkpoint ogni 10.000 record)

🧹 Post-elaborazione

  • ☐ Rimuovere duplicati
  • ☐ Pulire i tag HTML e i caratteri speciali dai testi
  • ☐ Controllare l'equilibrio delle classi (per compiti di classificazione)
  • ☐ Suddividere in set di train/validation/test
  • ☐ Salvare in un formato compatibile con il tuo framework ML

Conclusione

La raccolta di dati per ML-dataset non è un compito una tantum, ma un processo sistematico. Le principali conclusioni di questo articolo: la scelta corretta dei proxy determina se arriverai fino in fondo o ti fermerai ai blocchi. I proxy residenziali sono necessari per marketplace e aggregatori protetti, i mobili per i social media, i proxy di data center per fonti testuali aperte. Strumenti come Octoparse e Apify consentono di costruire un pipeline senza scrivere codice. E seguire le regole di base (rotazione IP, ritardi casuali, intestazioni corrette) consente di raccogliere centinaia di migliaia di record senza perdite.

Se prevedi di raccogliere dati da marketplace, siti di notizie o portali tematici per addestrare modelli ML, ti consigliamo di iniziare con proxy residenziali — forniscono il massimo livello di fiducia da parte dei sistemi di protezione e il rischio minimo di blocchi anche durante la raccolta di dati su larga scala.

```