Cosa leggere per raccogliere dati dal web — e dove conservarli poi
Il web scraping è una disciplina ingannevolmente semplice all’inizio e molto ampia nella sostanza. Per scrivere uno scraper funzionante dovrai toccare HTTP e HTML, le espressioni regolari, l’aggiramento delle protezioni anti-bot, la pulizia dei dati «sporchi» e, per finire, la loro archiviazione. Per questo una buona selezione di letture non è un solo libro, ma un piccolo «arsenale»: un nucleo sullo scraping vero e proprio più alcune opere sui temi di contorno. Qui sotto trovi una panoramica di ciò che vale la pena leggere, con sezioni dedicate alle espressioni regolari e ai database.
Mettiamo subito in chiaro l’essenziale: l’opera di riferimento della nicchia è Web Scraping with Python di Ryan Mitchell. L’edizione attuale è la terza, profondamente rivista. Tutto il resto ruota attorno a essa.
La letteratura in inglese
In inglese l’offerta è ampia e permette di comporre un set su misura per ogni esigenza.
Ryan Mitchell. Web Scraping with Python, 3ª ed. (O'Reilly, 2024)
Il manuale di base. Il suo punto di forza: l’autrice riconosce con onestà che lo scraping si trova all’incrocio di molte aree e richiede di lavorare con database, server web, HTTP, HTML, sicurezza in rete, elaborazione delle immagini e data science, e per questo offre un’introduzione panoramica a ciascuna di esse. La struttura è classica: la prima parte copre la meccanica dello scraping (richieste al server, gestione delle risposte, automazione); la seconda, strumenti e scenari avanzati (Scrapy, archiviazione, documenti, linguaggio naturale, form e login, JavaScript, API, riconoscimento delle immagini, aggiramento dei blocchi).
Seppe vanden Broucke e Bart Baesens. Practical Web Scraping for Data Science (Apress)
L’accento è sulla data science. Gli autori sono data scientist, e il libro offre una guida moderna e concisa allo scraping che non nasconde i dettagli importanti né le buone pratiche. Un’ottima scelta se per te lo scraping è il primo passo di un progetto di data science (raccogliere il dataset, pulirlo, prepararlo per l’analisi).
Python Web Scraping Cookbook (Packt)
Formato «a ricette» per compiti concreti: proxy, captcha, Scrapy, dockerizzazione, deployment. Utile come manuale di consultazione, non come libro di testo «da zero».
Hands-On Web Scraping with Python (Packt)
Orientato alla pratica, con l’accento sull’estrazione di dati di qualità e sulle tecniche moderne. Integra Mitchell con esempi applicati.
Al Sweigart. Automate the Boring Stuff with Python
Non copre lo scraping per intero, ma contiene un eccellente capitolo introduttivo ed è disponibile gratis online. Il punto di partenza ideale se il tuo Python è ancora traballante.
Una precisazione. I libri di Packt e simili invecchiano più in fretta di Mitchell: le librerie e le protezioni anti-bot cambiano a tutta velocità. Confronta sempre il codice con la documentazione aggiornata delle librerie.
Espressioni regolari
Le regex sono il cavallo di battaglia del parsing. Un avvertimento importante: per analizzare l’HTML conviene usare parser specializzati (BeautifulSoup, lxml) e riservare le espressioni regolari al testo «sporco», ai log, alla validazione e alla post-elaborazione dei dati già estratti. Il canone, qui, è stabile e invecchia appena.
Jeffrey Friedl. Mastering Regular Expressions, 3ª ed. (O'Reilly, 2006)
La «bibbia» del tema. Nonostante l’età, concettualmente non è invecchiata: spiega come funziona dall’interno un motore di espressioni regolari — NFA/DFA, backtracking, ottimizzazione dei pattern. È un libro denso, ma dopo averlo letto le regex smettono di essere magia.
Jan Goyvaerts e Steven Levithan. Regular Expressions Cookbook, 2ª ed. (O'Reilly, 2012)
Una raccolta pratica di soluzioni pronte per diversi linguaggi, Python incluso. Comoda come riferimento accanto al libro di Friedl.
Michael Fitzgerald. Introducing Regular Expressions (O'Reilly)
Un’introduzione morbida, se Friedl intimidisce fin dalla prima pagina.
Come leggerli. Per la maggior parte dei compiti di scraping basta il capitolo sulle espressioni regolari dello stesso Mitchell più il «Cookbook» a portata di mano. Rivolgiti a Friedl quando ti scontri con le prestazioni o con pattern complessi.
Archiviazione dei dati: «7 database in 7 settimane» e il contesto
I risultati dello scraping vanno pur conservati da qualche parte, e la scelta dello storage dipende dal tipo di dati:
- tabelle piatte → database relazionale (PostgreSQL, MySQL);
- JSON annidato → database documentale (MongoDB, CouchDB);
- relazioni tra entità → database a grafo (Neo4J);
- cache, code, dati temporanei → key-value (Redis).
Per questo compito esistono libri dedicati.
Luc Perkins, Eric Redmond e Jim Wilson. Seven Databases in Seven Weeks, 2ª ed. (Pragmatic Bookshelf, 2018)
Il famoso «7 database in 7 settimane». La seconda edizione è una guida esaustiva al mondo NoSQL: sette tecnologie — Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres e DynamoDB. Il suo valore principale per chi si occupa di scraping è che insegna a ragionare per modelli di dati: nel corso del libro si analizzano cinque modelli — relazionale, chiave-valore, colonnare, documentale e a grafo — dal punto di vista delle applicazioni reali. È esattamente la risposta alla domanda «quale tipo di dati va in quale database».
Sulle edizioni: la prima includeva un capitolo su Riak; nella seconda l’hanno sostituito con uno su DynamoDB e hanno aggiornato gli esempi. Scegli proprio la seconda edizione. Una precisazione: il libro è del 2018 e alcuni comandi da CLI potrebbero essere superati, ma come mappa dei «generi» di database resta il migliore.
Martin Kleppmann. Designing Data-Intensive Applications (O'Reilly)
Se «7 database» risponde alla domanda «quali database esistono», DDIA risponde a «come scegliere con criterio senza darsi la zappa sui piedi»: replica, coerenza, formati di codifica, tolleranza ai guasti. Lo standard d’oro quando i volumi di scraping crescono.
Bruce Tate. Seven Languages in Seven Weeks
Il libro che ha dato origine alla serie: da qui viene il formato dei «sette in sette settimane». Non ha un legame diretto con lo scraping; lo citiamo per completezza.
Libri dedicati a un database specifico
In combinazione con lo scraping tornano utili i libri specifici su PostgreSQL (spesso un solo database relazionale basta per iniziare) e su MongoDB (se riversi JSON grezzo). Come base minima per le query SQL va benissimo Learning SQL di Alan Beaulieu (O'Reilly).
Come comporre la tua selezione
Il set minimo pratico è questo:
- Il nucleo sullo scraping — Mitchell (l’ultima edizione).
- Espressioni regolari — il capitolo dello stesso Mitchell + il «Regular Expressions Cookbook» come riferimento; Friedl, man mano che approfondisci.
- Archiviazione — «Seven Databases in Seven Weeks» (2ª ed.) per scegliere il modello di dati; DDIA, quando la scala cresce; e un libro sul database concreto che hai scelto.
Il livello di dettaglio successivo dipende dal tuo stack e dal tipo di dati target: tabelle di prodotti, testi di articoli, grafi di relazioni e dati in streaming richiedono strumenti di archiviazione diversi e, di conseguenza, un ordine di lettura diverso.