Codice Python per web crawling con Crawlee e Playwright

Crawlee for Python: costruisci una pipeline di crawling con robots.txt, link graph ed export RAG

Crawlee for Python è un framework per costruire pipeline di web scraping e crawling. In questo tutorial si parte dall’installazione dell’ambiente (con Pydantic 2.11, Playwright per il rendering JavaScript, e le dipendenze di base), passando per la generazione di un sito demo locale, fino all’estrazione strutturata dei dati e all’esportazione in formato adatto a sistemi RAG.

Il setup gestisce anche la persistenza delle directory di storage e l’esecuzione in ambienti come Colab. Dopo l’installazione, il runtime viene riconfigurato automaticamente (con restart incluso).

Il sito demo: prodotti, blog, documentazione

Viene generato un sito fittizio con pagine prodotto (5 SKU con nome, prezzo, categoria, valutazione, stock, feature e prodotti correlati), pagine di documentazione con sezioni tecniche, blog post con tag, e un catalogo generato lato client con JavaScript. Il tutto include un file robots.txt che blocca alcune sezioni, dati strutturati JSON-LD e metadati HTML.

Tre crawler per tre casi d’uso

Il tutorial esplora tre modalità di crawling:

  • BeautifulSoupCrawler – crawling ricorsivo veloce su HTML statico. Estrae titoli, metadati, anteprime di testo, link uscenti, attributi prodotto, heading della documentazione, blocchi di codice e tag dei blog.
  • ParselCrawler – estrazione precisa con selettori CSS e XPath sulle pagine dettaglio prodotto.
  • PlaywrightCrawler – rendering di contenuti JavaScript in un browser Chromium headless, attesa degli elementi DOM dinamici, estrazione dati client-side e cattura di screenshot a schermo intero.

Dai dati grezzi al grafo delle relazioni

I link raccolti vengono usati per costruire un grafo orientato del sito (con NetworkX), visualizzando le connessioni tra pagine prodotto, documentazione e blog. I dati strutturati (prezzi, rating, feature) vengono aggregati in un dataframe per analisi successive.

Il tutorial mostra anche come esportare i chunk di testo pulito (con metadata) in formato JSONL, pronto per essere indicizzato da un motore vettoriale o usato in una pipeline RAG.

Articoli simili