Web scraper: come raccogliere dati dal web

Copiare a mano i prezzi dal sito di un fornitore in un foglio di calcolo funziona per venti prodotti. Per duemila si mangia una settimana e lascia comunque degli errori. Un web scraper (detto anche parser) è un piccolo programma che apre le pagine al posto suo, prende da ciascuna le stesse informazioni e le salva in una tabella. Ecco cosa può fare, cosa preparare e quali regole seguire.

A cosa serve uno scraper
Uno scraper è utile ogni volta che lo stesso tipo di informazione si trova su molte pagine simili:
- Prezzi e disponibilità. Seguire come cambiano i prezzi di un fornitore o quali articoli sono esauriti.
- Il catalogo di un fornitore. Trasferire nomi, descrizioni, immagini e prezzi nel proprio negozio.
- Annunci. Raccogliere in una tabella annunci immobiliari, di auto o di lavoro da una bacheca pubblica.
- Eventi e articoli. Riunire date, titoli e link da un calendario pubblico o da una pagina di notizie.
Raccolga solo ciò che è consentito
Prima di tutto, controlli che sia corretto prendere quei dati:
- Solo pagine pubbliche. Se per vedere i dati bisogna accedere, lo scraper non è lo strumento giusto.
- Legga i termini del sito. Molti siti dicono cosa si può e non si può raccogliere. Le grandi piattaforme, i motori di ricerca e i social network di solito lo vietano: usi invece la loro esportazione ufficiale o le loro API.
- Rispetti i limiti di frequenza. Una pausa di qualche secondo tra una pagina e l'altra mantiene basso il carico sul sito. Non cerchi mai di aggirare captcha o blocchi.
- Rispetti le leggi sulla privacy. Nomi, email e numeri di telefono delle persone sono dati personali, e molti paesi ne limitano rigorosamente la raccolta. Li lasci fuori.
Alla fine, decidere se può raccogliere e usare i dati di un sito spetta a lei, quindi controlli prima di iniziare.
Descriva le pagine
Uno scraper si scrive sulla struttura reale delle pagine, quindi sia preciso:
- Un link a una pagina elenco e un link alla pagina di un singolo articolo.
- Quante pagine ci sono, all'incirca, per esempio «circa 40 pagine elenco con 24 prodotti ciascuna».
- Una o due pagine salvate dal browser (File > Salva pagina con nome) oppure i loro screenshot.
Elenchi i campi come colonne di una tabella
Immagini il risultato come un foglio di calcolo e indichi le colonne in ordine, con un esempio per ciascuna:
- Nome: «Tagliere in rovere, grande»
- Prezzo: «34.90»
- Prezzo precedente: «39.90», se l'articolo è in saldo
- Disponibile: «sì»
- Link alla pagina dell'articolo e link all'immagine
Dieci campi chiari sono meglio di trenta vaghi. Aggiunga le regole che le servono, come «solo articoli disponibili».
Scelga il formato e dove gira
- CSV si apre in qualsiasi foglio di calcolo e si importa nella maggior parte delle piattaforme e-commerce.
- Excel è più comodo se filtrerà e ordinerà a mano.
- JSON è adatto a uno sviluppatore che caricherà i dati altrove.
Lo scraper gira sul suo computer con Python, così i dati arrivano direttamente a lei e può avviarlo di nuovo ogni volta che le servono numeri aggiornati.
Quando il sito cambia
Uno scraper segue le pagine come sono oggi. Se il sito cambia grafica, lo scraper potrebbe non trovare più i campi e va aggiornato. Un sito può anche limitare le visite pur a un ritmo cortese. Ne tenga conto se usa quei dati ogni settimana.
In sintesi
Decida quali pagine pubbliche e quali campi le servono, controlli i termini del sito, mantenga un ritmo cortese e lasci fuori i dati personali. Se preferisce non scrivere il codice da sé, ordini un web scraper: invia il sito, i campi e una o due pagine salvate e riceve il codice Python, un file di impostazioni e una guida passo passo per avviarlo ed esportare in CSV, Excel o JSON. Il pagamento viene sbloccato solo dopo che lei ha accettato il lavoro.