Skip to main content
Un web scraper non è un unico elemento, ma una pipeline. Che tu lo scriva in Python, controlli direttamente un browser headless o lo crei visivamente in uno strumento no-code, le stesse fasi si susseguono nel medesimo ordine. Conoscerle permette di capire molto più facilmente dove uno scraper smette di funzionare, dove rallenta e quale tecnica risolve ciascun problema.
1

Recupera la pagina

Invia una richiesta HTTP e riceve il codice HTML.
2

Esegue il rendering della pagina

Esegue il codice JavaScript della pagina in un browser reale.
3

Individua i dati

Identifica gli elementi con XPath o selettori CSS.
4

Estrae e perfeziona

Estrae i valori e li ripulisce con espressioni regolari.
5

Naviga nel sito

Gestisce l’impaginazione e le pagine protette da accesso.
6

Archivia l'output

In CSV, JSON, un database o un’API a valle.
Le prime cinque fasi vengono eseguite in sequenza su ogni pagina; la fase naviga torna a recupera per la pagina successiva e l’intero ciclo viene eseguito su larga scala, nel cloud, dietro Proxy a rotazione e superando i CAPTCHA.

Recuperare la pagina

Tutto inizia con una richiesta. Lo scraper invia una richiesta HTTP a un URL e riceve una risposta, solitamente in HTML e talvolta in JSON. Per le semplici pagine sottoposte a rendering lato server, questo singolo passaggio fornisce tutto il necessario. Il problema è che la risposta contiene soltanto il payload iniziale inviato dal server; su molti siti moderni si tratta di una struttura quasi vuota.

Eseguire il rendering della pagina

Quando un sito crea i contenuti con JavaScript, i dati desiderati non sono presenti nell’HTML iniziale: compaiono solo dopo l’esecuzione degli script della pagina. Il rendering esegue questi script in un browser reale, facendo apparire tutti i contenuti. Il runtime del browser utilizzato determina la fedeltà di caricamento della pagina e il consumo di memoria e tempo; costituisce inoltre il fulcro dell’estrazione da pagine con rendering JavaScript.

Individuare i dati

Quando la pagina è completamente caricata, lo scraper deve identificare gli elementi specifici desiderati, ad esempio un prezzo, un titolo o una riga di una tabella. A tale scopo si usano XPath o selettori CSS, che descrivono dove si trova un elemento nella struttura della pagina. La qualità dei selettori fa la differenza tra uno scraper che resiste a piccole modifiche del layout e uno che smette di funzionare a ogni aggiornamento del sito.

Estrarre e perfezionare

Individuare un elemento consente di ottenerne il contenuto grezzo; l’estrazione recupera il valore e il perfezionamento lo ripulisce. Un prezzo estratto potrebbe presentarsi come "$1,299.00 USD", mentre occorre soltanto il numero. Le espressioni regolari e le regole di post-elaborazione rimuovono, suddividono e riformattano il testo grezzo nei campi strutturati che si desidera archiviare. La maggior parte dei dataset si estende su più pagine. Lo scraper deve attraversare l’impaginazione, usando link alla pagina successiva, pulsanti “Carica altro” o scorrimento infinito, per raggiungere ogni record. Alcuni contenuti si trovano inoltre dietro pagine protette da accesso, che lo scraper deve superare autenticandosi prima di poter eseguire le fasi precedenti.

Eseguire su larga scala

Uno scraper che funziona una volta su un computer portatile deve comunque resistere a migliaia di esecuzioni. L’esecuzione nel cloud mantiene attive le attività senza occupare il computer. I Proxy a rotazione distribuiscono le richieste tra numerosi indirizzi IP, evitando che un sito applichi limiti di frequenza o blocchi lo scraper. I CAPTCHA e i servizi anti-bot sono gli ostacoli che questa fase deve gestire.

Archiviare l’output

Infine, i dati estratti vengono salvati in una destinazione utilizzabile: un file CSV o Excel, un’esportazione JSON, un database o un’API a valle. È questa fase a trasformare un’esecuzione di scraping in un dataset.

Il ruolo di Octoparse

Con uno scraper scritto manualmente, devi collegare personalmente tutte queste fasi: una libreria per le richieste, un driver del browser, un motore per i selettori, codice di pulizia, logica di impaginazione, gestione dei Proxy e una fase di esportazione. Octoparse riunisce l’intera pipeline in un unico flusso di lavoro visuale. Basta indicare e fare clic per impostare i selettori; rendering, impaginazione, rotazione dei Proxy, Estrazione cloud ed esportazione sono integrati e si configurano senza scrivere codice. Le fasi restano le stesse; cambia il fatto che descrivi che cosa raccogliere, anziché progettare come eseguire ciascuna fase.