Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Faller Web Harvester

Sistema di web harvesting per il catalogo Faller, progettato per estrarre automaticamente dati tecnici, immagini e documentazione dal sito ufficiale Gebr. Faller GmbH. L'architettura è full-stack e modulare, basata su un'interfaccia web in Flask e un database SQLite gestito tramite Repository Pattern. Il sistema garantisce una netta separazione tra la logica di scraping, la persistenza dei dati e la presentazione utente.


Funzionalità principali

  • Estrazione automatica dei dati: Web scraping avanzato delle pagine prodotto del sito Faller per recuperare informazioni tecniche, codici EAN, scale, epoche, ecc. .
  • Gestione Multi-media: Download e organizzazione sistematica di immagini, manuali d'istruzione, schede di sicurezza e layout in formato PDF.
  • Persistenza su Database: Archiviazione strutturata dei dati tramite SQLite, implementata con il Repository Pattern per una gestione efficiente delle entità prodotto.
  • Dashboard Web: Interfaccia di controllo basata su Flask per la gestione dei processi di scraping, la ricerca filtrata dei prodotti e la visualizzazione della cache.
  • Esportazione Professionale: Generazione di file Excel dettagliati (con anteprime immagini e link) e creazione di archivi ZIP per la portabilità dei dati.
  • Ottimizzazione e Caching: Sistema di cache per ridurre il numero di richieste al server e gestione delle eccezioni basata su un file di configurazione (config.py) raffinato iterativamente.

Struttura del progetto

La struttura completa del progetto è documentata nel file dedicato: Project Structure (PS)


Installazione

1. Creare un ambiente virtuale (consigliato)

python -m venv venv

2. Attivare l’ambiente virtuale

Sistema operativo Comando
Windows venv\Scripts\activate
macOS / Linux source venv/bin/activate

3. Installare le dipendenze

Il progetto richiede le librerie elencate in requirements.txt (tra cui Flask, Pandas, BeautifulSoup4, ecc.).

pip install -r requirements.txt

4. Avviare l'Applicazione

Il punto di ingresso del sistema è run.py, che inizializza l'applicazione Flask e il server locale.

python run.py

Una volta avviato, apri il browser all'indirizzo http://127.0.0.1:5000 per accedere al progetto


Utilizzo

L'interazione con il sistema avviene attraverso una Dashboard Web centralizzata che permette di gestire l'intero ciclo di vita dei dati del catalogo Faller.

1. Flusso di Lavoro dell'Utente

L'utente può operare seguendo queste fasi principali:

  • Configurazione Input: È possibile avviare lo scraping inserendo una lista di codici prodotto singoli o definendo un range numerico per l'estrazione massiva di intere serie di articoli.
  • Harvesting & Cleaning: Il sistema esegue il parsing del sito ufficiale, scarica le immagini e la documentazione tecnica, applicando la pulizia dei dati tramite le regole per gestire le incongruenze dell'HTML originale.
  • Consultazione Avanzata: Attraverso l'interfaccia, è possibile gestire i dati estratti utilizzando filtri specifici:
  • Ricerca e filtraggio per: Codice Prodotto, EAN, Categoria o Nome Prodotto.
  • Generazione Output: Esportazione dei dati in formato Excel (con anteprime immagini e link) e creazione di archivi ZIP pronti per l'uso offline.

2. Funzionalità Amministratore (Admin)

L'Amministratore ha accesso a strumenti di gestione per garantire l'integrità del catalogo, operando in modo simile all'utente ma con poteri di supervisione:

  • Manutenzione Dati: Capacità di modificare o eliminare i dati estratti per correggere eventuali errori persistenti nel database.
  • Supervisione Sistema: Monitoraggio dell'attività di harvesting e della coerenza tra il database SQLite e i file multimediali (immagini e PDF) salvati localmente.

Documentazione e Risorse

Il progetto è accompagnato da una documentazione tecnica completa, pensata sia per l'analisi funzionale che per la mappatura multidisciplinare:

Diagrammi e Progettazione

Nella cartella docs/ sono disponibili i seguenti artefatti grafici:


Licenza

Il codice sorgente di questo progetto è distribuito sotto licenza MIT.

Ciò significa che il software può essere utilizzato, modificato e ridistribuito liberamente, nel rispetto dei termini della licenza.

Il testo completo della licenza è disponibile nel file LICENSE.


Note legali

La licenza MIT si applica esclusivamente al codice sorgente del progetto.
I contenuti estratti (immagini, testi, PDF, schede tecniche) rimangono di proprietà dei rispettivi autori e non sono coperti dalla licenza MIT.

L’estrazione dei dati avviene nel rispetto delle condizioni d’uso del sito Faller e delle normative vigenti.

Per approfondimenti su aspetti legali ed etici del web scraping, consultare:

Il progetto non è affiliato né approvato da Gebr. Faller GmbH.


⚠️ Dichiarazione di responsabilità

Il progetto non ha alcuno scopo commerciale.
Non è destinato alla diffusione pubblica di contenuti protetti da copyright.
È stato creato esclusivamente per uso personale e didattico.

Chi utilizza questo software deve farlo in modo etico e responsabile, rispettando le condizioni d’uso del sito Faller e le normative europee sul trattamento dei dati e sul web scraping.

Deploy

Il progetto non prevede deploy online.
Non è stato effettuato il deploy perché si tratta di uno scraper che interagisce con un sito terzo (Faller) e non sarebbe appropriato né conforme alle condizioni d’uso pubblicarlo come servizio web.

About

Web harvesting system for the Faller catalog, with automated extraction of product data, images, and documentation. Includes a Flask web interface and a SQLite database for structured storage and management.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages