PROGETTO

Scraping di siti web con automazione Python configurabile

Sviluppo software personalizzato, Scraping dei dati web, Automazione Python configurabile, Esportazione strutturata in CSV e JSON, Rendering delle pagine JavaScript, Esecuzioni ricorrenti dello scraper, Distribuzione tramite database e API

  • Settore: Servizi di ricerca
  • Germania Sede: Germania
  • Tempi di consegna: 10 settimane
  • Tecnologie: Python, JavaScript / TypeScript
3 mesi

Questo cliente dedica tempo alla raccolta di dati su prodotti, inserzioni e contatti da siti web pubblici. La raccolta manuale o occasionale rende più difficile svolgere ricerche ripetibili. Il software accetta URL o modelli di URL target, selettori e regole di pagina. Restituisce quindi record strutturati in CSV, JSON o Excel. Offre a un'organizzazione di ricerca uno strumento configurabile per l'estrazione ricorrente di dati web, comprese le pagine che richiedono il rendering tramite browser.

Riepilogo

Problema

L'organizzazione di ricerca dedica tempo a sostituire la raccolta manuale o occasionale di dati web con un'estrazione ripetibile.

Soluzione

La soluzione è diventata uno scraper configurabile che segue le regole delle pagine, gestisce i contenuti dinamici ed esporta record strutturati.

Risultato

Il software è progettato per ridurre la raccolta manuale e le estrazioni incoerenti.

Storia del cliente

Il cliente è un'organizzazione di ricerca tedesca. Raccoglie dati su prodotti, inserzioni e contatti da siti web pubblici per attività di ricerca.

La raccolta manuale e occasionale richiede tempo al team, soprattutto quando i siti target usano paginazione, strutture di pagina variabili e tabelle dinamiche.

La richiesta era semplice: accettare URL o modelli di URL target, selettori configurabili o file di configurazione e restituire i contenuti selezionati dei siti come record strutturati.

La soluzione è stata costruita attorno a regole configurabili per i campi, crawling multipagina e rendering tramite browser. Esecuzioni pianificate e log chiari hanno supportato una raccolta ripetibile.

Il cliente ha richiesto

  1. Accettare URL, modelli di URL, selettori, XPath o file di configurazione
  2. Estrarre i contenuti selezionati in record strutturati
  3. Seguire la paginazione tra pagine e siti web
  4. Gestire pagine JavaScript, tabelle dinamiche e caricamento differito

Perché il software pronto all'uso non era adatto

I software pronti per l'estrazione dei dati coprono molti tipi di fonti, mentre i servizi di scraping gestiti si concentrano su API, infrastruttura browser e servizi proxy. Questo cliente aveva bisogno di campi, selettori e regole di paginazione specifici per il progetto. La soluzione doveva inoltre funzionare localmente, includere documentazione e rispettare requisiti di output definiti.

Panoramica del progetto

La soluzione è stata progettata attorno a una schermata di configurazione dello scraper, in cui il team di ricerca definisce URL, campi e selettori target. Sono disponibili anche regole di paginazione e formati di output.

Per gestire strutture di pagina diverse, lo scraper usa regole di estrazione configurabili per campi, testo visibile e tabelle. Esplora le pagine collegate e segue la paginazione quando necessario.

Il rendering basato sul browser è stato previsto per pagine JavaScript, tabelle dinamiche e contenuti caricati in modo differito. Le pagine statiche possono invece usare richieste HTTP dirette e il parsing HTML.

La soluzione è stata inoltre progettata per un utilizzo ripetibile. Funziona dalla riga di comando o da una macchina locale, supporta la pianificazione e registra errori e nuovi tentativi.

Di conseguenza, i record raccolti possono essere esportati in CSV, JSON o Excel. PostgreSQL, un endpoint REST JSON leggero e la documentazione del progetto ne supportano l'uso da parte del team cliente.

Funzionalità principali fornite

  • URL e modelli di URL target configurabili
  • Editor di selettori dei campi e XPath
  • Crawling multipagina e paginazione
  • Rendering di JavaScript e contenuti caricati in modo differito
  • Esportazione in CSV, JSON ed Excel
  • Limiti di frequenza, ritardi, nuovi tentativi e impostazioni user-agent
  • Cronologia delle esecuzioni e log di scraping
  • Distribuzione tramite PostgreSQL o REST JSON

Funzioni aggiungibili

+ Controlli di conformità a robots.txt + Pianificazione su cloud + Archiviazione dei dati + Documentazione specifica del progetto + Mapping aggiuntivi del database

Chi altro può usare questa soluzione

Queste aziende hanno un'attività simile e la stessa soluzione può essere adattata alla raccolta di dati dai loro siti web pubblici.

Un'agenzia di ricerche di mercato

Attività Raccoglie dati su prodotti, mercati e contatti da siti web pubblici.
Come aiuta la soluzione La soluzione aiuta ad applicare regole di estrazione ripetibili e a esportare record di ricerca strutturati.

Un team di analisi dei dati

Attività Raccoglie inserzioni, tabelle e contenuti selezionati da siti web pubblici.
Come aiuta la soluzione La soluzione aiuta a seguire la paginazione, eseguire il rendering delle pagine dinamiche e distribuire i record a file o database.

Una società di consulenza per la ricerca

Attività Archivia o analizza testo visibile e contenuti strutturati da pagine web pubbliche.
Come aiuta la soluzione La soluzione aiuta a pianificare le esecuzioni, esaminare gli errori e conservare i file generati insieme ai log.

Stack tecnologico

Python

Linguaggio di automazione

Python esegue lo scraper configurabile, le regole di estrazione, la gestione dei dati e le esportazioni.

JavaScript / TypeScript

Linguaggio per l'automazione del browser

JavaScript o TypeScript supporta l'automazione del browser quando si usa l'estrazione basata sul browser.

Requests

Richiedere pagine HTML

Requests (una libreria Python per inviare richieste web) recupera le pagine per l'estrazione diretta.

BeautifulSoup

Analizzare l'HTML delle pagine

BeautifulSoup (una libreria Python per leggere l'HTML) individua i campi selezionati e i contenuti visibili nel markup della pagina.

Scrapy

Esplorare più pagine

Scrapy (un framework Python per il crawling web) segue le pagine collegate e supporta l'estrazione multipagina.

Playwright

Eseguire il rendering delle pagine nel browser

Playwright è un'API di alto livello per automatizzare i browser web durante l'estrazione basata sul browser.

Pandas

Gestire i dati estratti

Pandas organizza i record estratti prima dell'esportazione o della distribuzione.

openpyxl

Scrivere file Excel

openpyxl (una libreria Python per leggere e scrivere file Excel) supporta l'output XLSX.

CSV

Esportare record tabellari

CSV archivia i record estratti in un semplice file tabellare.

JSON

Esportare record strutturati

JSON archivia i campi estratti come record strutturati per file o API.

Integrazioni

PostgreSQL

Lo scraper scrive i record raccolti in PostgreSQL quando è necessaria la distribuzione tramite database.

REST JSON endpoint

La soluzione espone i record raccolti tramite un endpoint REST JSON leggero quando richiesto.

Excel

La soluzione scambia i record estratti tramite file XLSX.

Command line and local scheduling

Lo scraper funziona dalla riga di comando o da una macchina locale con cron o Windows Task Scheduler.

Il risultato

Imposta le regole di estrazione per ogni sito web

La schermata di configurazione riunisce siti web target, campi e selettori. Sono disponibili anche impostazioni per la paginazione e i contenuti dinamici.

Questo offre al team di ricerca un punto chiaro in cui definire ciò che lo scraper deve raccogliere prima dell'esecuzione.

Come funziona

  1. La configurazione memorizza gli URL dei siti, i campi richiesti e i selettori o XPath.
  2. Lo scraper applica le regole dei campi ai contenuti selezionati delle pagine.
  3. I moduli di paginazione e contenuti dinamici preparano l'esecuzione per le pagine collegate e i contenuti renderizzati dal browser.
  • Gli URL target possono essere indirizzi singoli o modelli di URL.
  • Gli output includono CSV, JSON o Excel.
Nota: Limiti di frequenza, ritardi, impostazioni user-agent, nuovi tentativi e controlli di conformità a robots.txt supportano una raccolta responsabile.
Configurazione dello scraper

Configurazione dello scraper

Funzioni mostrate in questa schermata
Estrai i campi selezionati Gestisci la paginazione Esegui il rendering dei contenuti dinamici

Esamina i record strutturati dei siti web

La tabella dei risultati presenta campi estratti, testo visibile e tabelle come record strutturati.

L'esportazione in CSV, JSON ed Excel mantiene i dati raccolti pronti per i file di ricerca e ulteriori analisi.

Come funziona

  1. Il modulo di estrazione crea record dai campi selezionati, dal testo visibile, dalle tabelle o dalle inserzioni.
  2. La tabella dei risultati mostra i campi estratti e il numero di record.
  3. Il modulo di esportazione crea file CSV, JSON o XLSX.
  • JSON è adatto allo scambio strutturato.
  • Excel è disponibile quando l'ambito dell'estrazione lo richiede.
Record estratti ed esportazione

Record estratti ed esportazione

Funzioni mostrate in questa schermata
Estrai dati strutturati Esporta i dati in CSV o JSON

Monitora le esecuzioni e analizza gli errori

La cronologia delle esecuzioni mostra siti web target, orari e stato. Registra inoltre errori, nuovi tentativi e percorsi dei file generati.

I log offrono al team un modo pratico per esaminare l'attività dello scraper quando una pagina cambia o un'esecuzione richiede attenzione.

Come funziona

  1. Lo scraper registra orari, siti web target e stato di successo o errore delle esecuzioni.
  2. Il visualizzatore dei log mostra i messaggi di errore e le informazioni sui nuovi tentativi.
  3. I collegamenti ai file generati associano ogni esecuzione ai percorsi dei file CSV, JSON o di log.
  • La cronologia registra l'attività di raccolta ricorrente.
  • I messaggi di errore mostrano i problemi registrati durante un'esecuzione.
Cronologia delle esecuzioni e log dello scraper

Cronologia delle esecuzioni e log dello scraper

Funzioni mostrate in questa schermata
Registra l'attività di scraping

Invia i record a un database o a un'API

La schermata di distribuzione prepara i record raccolti per l'uso in database o API, invece di lasciarli solo nei file esportati.

Il mapping tra campi e schema, insieme all'anteprima del payload JSON, aiuta ad allineare i dati estratti alla struttura di destinazione.

Come funziona

  1. Il modulo di destinazione memorizza le impostazioni del database o la configurazione della destinazione.
  2. Il modulo di mapping associa i campi estratti allo schema della tabella target.
  3. Il modulo di integrazione registra JSON conformi allo schema, record del database e log delle esecuzioni.
  • La soluzione supporta la distribuzione tramite PostgreSQL quando necessario.
  • È disponibile un endpoint REST JSON leggero per le integrazioni richieste.
Distribuzione tramite database o API

Distribuzione tramite database o API

Cosa offre la soluzione

Con questa soluzione, l'organizzazione di ricerca può:

  • Definire regole di estrazione per ogni sito web target
  • Raccogliere contenuti selezionati tra pagine con paginazione
  • Gestire contenuti renderizzati dal browser e caricati in modo differito
  • Esportare record strutturati in CSV, JSON o Excel
  • Esaminare errori, nuovi tentativi e file generati
  • Inviare i record raccolti a un database o a un'API

I sistemi pronti all'uso avrebbero potuto svolgere il lavoro?

Prima della progettazione, l'attività è stata confrontata con prodotti pronti all'uso sulla base delle loro descrizioni.

Cosa serve al cliente Software per l'estrazione dei dati Data Extraction API di web scraping Oxylabs, Zyte, Scrapfly Strumenti di scraping no-code Octoparse Soluzione personalizzata
Accettare URL e regole di estrazione
Estrarre contenuti selezionati dai siti web
Seguire la paginazione tra le pagine
Gestire contenuti dinamici del browser parzialmente
Adattarsi alle regole del cliente: fasi, ruoli, report — — —
Tutti i passaggi in un unico luogo —
Nessun passaggio manuale tra i programmi parzialmente parzialmente

In base alle descrizioni pubbliche dei prodotti e della loro categoria.

Le parti principali dell'attività sono presenti nei software di estrazione dati, nelle API di web scraping e negli strumenti di scraping no-code. Un prodotto pronto all'uso è sufficiente quando serve solo una parte dell'attività.

Questo cliente aveva bisogno di un software proprietario perché regole di estrazione, funzionamento locale, documentazione, formati di output, log e requisiti di destinazione dovevano adattarsi al lavoro di ricerca in un unico luogo. Le opzioni pronte all'uso differiscono inoltre nella gestione dei passaggi manuali tra programmi.

In definitiva

In definitiva, la soluzione è stata realizzata per eliminare la raccolta manuale dal percorso che porta dai siti web pubblici ai dati di ricerca strutturati.

FAQ

Stai pensando di creare un sistema simile? Leggi le risposte qui sotto per capire come scraping configurabile, esportazioni, rendering del browser e distribuzione possano integrarsi in un flusso di lavoro di ricerca.