𝗗𝗮 𝗥𝗲𝗴𝗲𝘅 𝗮𝗹𝗹𝗶 𝗟𝗟𝗠: 𝗶𝗹 𝗺𝗶𝗼 𝗽𝗲𝗿𝗰𝗼𝗿𝘀𝗼 𝗻𝗲𝗹𝗹'𝗲𝘀𝘁𝗿𝗮𝘇𝗶𝗼𝗻𝗲 𝗱𝗶 𝗱𝗮𝘁𝗶 𝘄𝗲𝗯
Ho costruito uno strumento di confronto prezzi. Avevo bisogno di estrarre dati sui prodotti da decine di siti di e-commerce. Ogni sito aveva una struttura diversa. Alcuni usavano classi CSS casuali. Altri usavano JavaScript per caricare i contenuti.
All'inizio ho provato la via classica. Ho usato Regex e BeautifulSoup.
Ha funzionato per due siti. Poi, un sito ha cambiato il suo layout. Il mio codice si è rotto. Un altro sito usava contenuti dinamici. Ho passato più tempo a riparare gli scraper che a usare i dati.
Poi ho provato l'IA. Ho fornito l'HTML grezzo a un LLM.
I risultati sono stati pessimi. L'output era incoerente. A volte ottenevo JSON. A volte ottenevo paragrafi. Il modello allucinava i dati. Il costo era troppo elevato perché inviavo troppi token.
Ho trovato una via di mezzo. Ora uso un approccio ibrido.
Ecco il mio processo:
- Preprocesso l'HTML. Rimuovo script, stili e barre di navigazione. Tengo solo il testo visibile. Questo riduce il numero di token e i costi.
- Uso la modalità JSON o il function calling. Questo costringe l'LLM a restituire dati strutturati.
- Uso una logica di retry. Se il JSON è errato, il codice riprova.
- Metto in cache i risultati. Salvo le estrazioni andate a buon fine per ogni URL per evitare di pagare due volte per la stessa pagina.
Regex e BeautifulSoup sono ancora i migliori per i siti statici e ben strutturati. Sono veloci e gratuiti.
Gli LLM sono migliori per i siti disordinati e imprevedibili. Ma devi pulire i dati prima per mantenere bassi i costi.
Le mie lezioni apprese:
- Monitora i costi e i tassi di successo.
- Fai attenzione alla latenza. Le chiamate agli LLM richiedono secondi, non millisecondi.
- Valida l'output. Controlla se il prezzo sembra un prezzo reale.
- Usa un sistema ibrido. Usa un parser per i siti semplici e un LLM per quelli disordinati.
Questa configurazione mi fa risparmiare ore di lavoro. Posso aggiungere un nuovo negozio in meno di un'ora.
Come gestite i dati web disordinati? Preferite i parser o gli LLM?
Community di apprendimento opzionale: https://t.me/GyaanSetuAi