Copertina: PageSift: scraper self-hosted open-source in Rust

PageSift: scraper self-hosted open-source in Rust

Un estrattore web e documentale self-hosted che trasforma pagine, PDF e Office in Markdown e JSON pronti per AI e automazioni.

04 novembre 20269 min di lettura
pagesiftweb scrapingself-hostedopen sourcerustmarkdownMCPestrazione documenti

Cos'è PageSift

PageSift è uno strumento open-source per web scraping, crawling ed estrazione contenuti, progettato per funzionare interamente in self-hosting. È scritto in Rust e distribuito come singolo binario, con l'obiettivo di prendere in ingresso URL, pagine web, file PDF anche scansionati, documenti Office, archivi compressi e altri formati comuni, e restituire in uscita Markdown pulito e JSON strutturato.

In termini semplici, fa da ponte tra il web disordinato e le applicazioni moderne: ripulisce il rumore di menu, banner, script e pubblicità, preserva titoli, paragrafi, tabelle e link, e produce un testo ordinato e riutilizzabile. Questo output è pensato per essere usato direttamente da persone, ma soprattutto da pipeline di automazione, motori di ricerca interna, sistemi RAG e agenti di intelligenza artificiale che hanno bisogno di contenuti leggibili e prevedibili.

La caratteristica che lo distingue da molti script artigianali è l'ambizione di offrire in un solo componente ciò che di solito richiede tre o quattro servizi diversi: recupero HTTP, crawling ricorsivo di siti, parsing HTML, estrazione da PDF con OCR, lettura di formati Office e normalizzazione verso un formato unico. Non è un semplice lettore di singole pagine, ma un piccolo motore di acquisizione documentale.

Un altro aspetto centrale è la compatibilità dichiarata con le API di servizi SaaS molto usati come Firecrawl e Jina Reader. In pratica PageSift espone endpoint con forme di richiesta e risposta simili a quelli di questi servizi, così chi ha già un'integrazione può reindirizzarla verso la propria istanza locale cambiando base URL e chiave, senza riscrivere tutta la logica applicativa.

A cosa serve in pratica

Per founder, piccole e medie imprese e agenzie, PageSift risponde a un bisogno molto concreto: raccogliere informazioni dal web e dai documenti in modo sistematico, ripetibile e sotto il proprio controllo, senza dipendere per ogni pagina da un servizio esterno a consumo.

I casi d'uso tipici sono numerosi. Il primo è il monitoraggio: controllo dei prezzi dei concorrenti, variazioni di catalogo, nuove pagine di prodotto, bandi pubblici, news di settore, modifiche a termini e condizioni o a pagine normative. Con un crawler programmabile è possibile pianificare visite periodiche e ottenere solo il contenuto rilevante in Markdown, pronto da confrontare o archiviare.

Il secondo è la rassegna e la ricerca contenuti. Agenzie di comunicazione, centri studi e uffici marketing possono raccogliere articoli, report in PDF, presentazioni e pagine istituzionali, convertirli in un formato uniforme e costruire archivi consultabili, newsletter interne o dossier per clienti, con citazione della fonte originale.

Il terzo è l'alimentazione di basi di conoscenza per l'intelligenza artificiale. Molte PMI hanno manuali, schede tecniche, listini in PDF o Word, FAQ sparse sul sito e ticket di assistenza. PageSift aiuta a normalizzare questo patrimonio in testi puliti da indicizzare in un motore di ricerca o da usare come contesto per assistenti e chatbot, riducendo il lavoro manuale di copia-incolla e pulizia.

Altri impieghi includono lead enrichment leggero a partire da fonti pubbliche, audit SEO e di contenuti, migrazione di vecchi siti verso nuovi CMS, verifica di link rotti e inventari di pagine, e archiviazione probatoria di pagine web per finalità legali o amministrative, dove avere una copia locale con data di acquisizione è importante.

Come funziona: dalla URL al Markdown

Il flusso di lavoro di PageSift può essere descritto in quattro fasi: acquisizione, estrazione, arricchimento e restituzione.

Nella fase di acquisizione il sistema scarica la risorsa indicata. Per le pagine web gestisce richieste HTTP, segue reindirizzamenti, rispetta timeout e limiti di profondità nel caso di crawling di interi siti o sezioni. Per i file gestisce upload o download da URL, decompressione di archivi e riconoscimento del tipo di documento. L'idea è centralizzare in un unico punto la logica di recupero, con code, retry e limiti di concorrenza per non sovraccaricare né la propria rete né i siti di origine.

Segue l'estrazione. Per l'HTML il parser individua il contenuto principale ed elimina navigazione, footer, sidebar, popup e script, mantenendo la struttura semantica: intestazioni, paragrafi, elenchi, tabelle, citazioni e collegamenti. Per i PDF testuali estrae testo e layout di base, mentre per i PDF scansionati o fotografati attiva un modulo OCR che riconosce i caratteri nelle immagini. Per i formati Office come DOCX, XLSX e PPTX estrae testo, fogli e slide in forma leggibile, e per altri allegati applica convertitori dedicati.

La terza fase è la normalizzazione. Il risultato viene convertito in Markdown standardizzato e, in parallelo, in JSON strutturato con metadati come titolo, URL canonico, data di acquisizione, lingua rilevata e blocchi di contenuto. Questa doppia uscita è importante: il Markdown è ideale per lettura umana e per i modelli linguistici, il JSON è ideale per database, code e applicazioni che devono filtrare, confrontare o memorizzare i campi in modo tipizzato.

L'architettura in Rust è una scelta non casuale. Rust è noto per alte prestazioni, basso consumo di memoria e sicurezza nella gestione della concorrenza, qualità utili quando si devono processare centinaia o migliaia di pagine e documenti pesanti. La distribuzione come binario unico semplifica installazione e aggiornamenti rispetto a stack composti da molti microservizi, ed è particolarmente adatta a VPS, server aziendali o ambienti containerizzati.

API compatibili, MCP e SDK

Uno dei punti più interessanti per gli sviluppatori è il livello di integrazione. PageSift non è solo un programma da riga di comando, ma un servizio con API HTTP.

La compatibilità con le interfacce di Firecrawl e Jina Reader significa che molte chiamate esistenti del tipo converti questa URL in markdown o estrai il contenuto principale possono essere riutilizzate quasi senza modifiche. Questo abbassa la barriera di migrazione da un SaaS esterno a un'istanza interna: si cambia l'indirizzo del servizio e si mantiene il resto del codice, con vantaggi in termini di prevedibilità dei costi e di controllo sui dati.

Oltre alle API REST, il progetto espone un'interfaccia per il Model Context Protocol, lo standard aperto che permette agli agenti AI di scoprire e invocare strumenti esterni in modo tipizzato. In questo modo un agente può chiedere in modo autonomo di leggere una pagina, seguire link o estrarre un PDF, ricevendo una risposta strutturata senza dover gestire direttamente HTTP, parsing o OCR. Per le agenzie che costruiscono assistenti e automazioni, questo riduce il codice collante necessario.

Sono inoltre previsti SDK e client per i linguaggi più comuni, che incapsulano autenticazione, gestione degli errori e paginazione dei risultati. Dal punto di vista operativo, l'amministratore può configurare chiavi API locali, limiti di utilizzo, cache delle pagine già visitate, allowlist e blocklist di domini, e politiche di rispetto per robots.txt e per le condizioni d'uso dei siti. Questi controlli sono fondamentali per un uso responsabile e sostenibile dello scraping.

Va ricordato che nessun estrattore può superare automaticamente tutte le protezioni anti-bot, i login, i CAPTCHA o i contenuti fortemente dinamici che richiedono un browser completo. PageSift copre bene il caso di contenuti statici e semi-dinamici e di documenti, mentre per applicazioni web complesse può essere necessario affiancarlo a strumenti di automazione browser dedicati.

Perché conta per PMI e agenzie italiane

Per il mercato italiano, fatto in gran parte di piccole imprese, studi professionali e agenzie con budget limitati e forte attenzione alla riservatezza, un estrattore self-hosted presenta tre vantaggi strategici.

Il primo è economico e operativo. I servizi di scraping a consumo sono comodi per iniziare, ma i costi crescono rapidamente quando si monitorano migliaia di pagine al mese o si processano archivi di PDF. Ospitare in casa un unico binario su un server esistente trasforma un costo variabile in un costo fisso e prevedibile, legato a CPU, memoria e banda, e permette di fare prove e iterazioni senza contare ogni singola chiamata.

Il secondo è il controllo sui dati. Quando si estraggono listini, documenti interni, contenuti di clienti o pagine con dati personali, far transitare tutto da un fornitore terzo pone questioni di privacy, GDPR, conservazione e audit. Con un'istanza interna i contenuti restano nella propria infrastruttura, nei propri log e nei propri backup, con politiche di retention definite dall'azienda e possibilità di operare anche su reti private o VPN senza esporre documenti all'esterno.

Il terzo è la sovranità tecnica. Avere il codice sorgente disponibile significa poter verificare cosa fa il software, aggiornarlo nei propri tempi, adattarlo a formati particolari diffusi in Italia come fatture, visure o modulistica in PDF, e integrarlo con gestionali, CMS e data warehouse già in uso, senza lock-in verso un singolo vendor.

A questo si aggiunge il tema della qualità per l'AI. Molti progetti di assistenti aziendali falliscono non per il modello, ma per dati di ingresso sporchi: HTML incollato, tabelle rotte, PDF illeggibili. Un normalizzatore verso Markdown e JSON alza la qualità del contesto fornito ai modelli, migliora citazioni e risposte e riduce i costi di token legati a testo inutile.

Dove trovarlo, licenza e come valutarlo

Il progetto è pubblicato su GitHub nell'organizzazione dell'autore con il nome pagesift, corredato da README, esempi di configurazione e documentazione delle API. Essendo open-source, è possibile esaminare il codice, aprire issue, proporre modifiche e seguire l'evoluzione dei rilasci direttamente dal repository.

La licenza dichiarata è AGPL-3.0, una licenza copyleft forte. In sintesi, permette uso, modifica e ridistribuzione, anche come servizio di rete, ma richiede di rendere disponibile il codice sorgente corrispondente, incluse le modifiche, a chi utilizza il software via rete. Per un uso puramente interno questo è generalmente gestibile, mentre per chi intende offrire scraping come servizio commerciale a terzi o incorporare il codice in un prodotto proprietario è opportuno un parere legale preventivo. È una scelta diversa da licenze permissive come MIT o Apache-2.0 e va valutata con attenzione nel proprio modello di business.

Per una valutazione prudente, il percorso consigliato è partire da un ambiente di test isolato: avviare il binario o il container su una macchina di prova, configurare una chiave locale, provare prima una singola pagina semplice, poi un PDF testuale, poi un PDF scansionato e un file Office campione, confrontando qualità del Markdown e fedeltà di tabelle e titoli rispetto all'originale. Solo dopo ha senso testare un crawl limitato a poche decine di pagine di un sito di proprietà o con autorizzazione, misurando tempi, memoria e tasso di successo.

Sul piano delle buone pratiche, è essenziale rispettare robots.txt, termini di servizio dei siti, rate limit e normativa su diritto d'autore e dati personali, limitare la frequenza di visita, identificarsi con user-agent trasparente e conservare prova delle fonti e delle date di acquisizione. Usato in questo modo, PageSift può diventare un mattoncino infrastrutturale sobrio e durevole: non un prodotto miracoloso, ma un'utilità concreta per portare ordine tra web e documenti e alimentare i flussi informativi dell'impresa.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere