AI web scraping - extract data with LLMs instead of CSS selectors - DataImpulse
  • Published:
  • Last Updated:
  • General
  • 9 min read

Il web scraping con AI usa un modello linguistico di grandi dimensioni per leggere una pagina ed estrarre i campi che ti servono, invece di scrivere selettori CSS o XPath fragili, che smettono di funzionare ogni volta che un sito cambia layout. Recuperi comunque la pagina nel modo consueto, e hai ancora bisogno di proxy per farlo su larga scala, ma la fase di estrazione viene gestita da un LLM che comprende il contenuto. Perciò lo stesso codice spesso continua a funzionare dopo un restyling e su siti diversi. Questa guida spiega cos’è il web scraping con AI, quando conviene e come farlo passo dopo passo in Python.

Sono Andrii Byzov, Fractional CMO AI-Native e creo pipeline di dati web. Qui sotto trovi: le differenze tra web scraping con AI e scraping basato sui selettori, un flusso di lavoro funzionante per estrarre dati con un LLM, il ruolo che i proxy continuano ad avere e quando lo scraping tradizionale è la scelta migliore. Per gli strumenti, consulta la nostra panoramica dei migliori strumenti di web scraping con AI.


Punti chiave

  • Web scraping con AI = estrazione con LLM, non recupero con LLM. Il modello legge il contenuto della pagina e restituisce dati strutturati; la pagina la recuperi comunque tu.
  • Tollera meglio le modifiche al layout. Senza selettori CSS che possono rompersi, l’LLM estrae in base al significato, quindi lo stesso codice spesso funziona dopo restyling e su siti simili, anche se servono ancora test, convalida e nuovi tentativi.
  • Uno schema più la convalida lo rendono affidabile. Richiedi una struttura JSON definita e convalidala, ad esempio con Pydantic o JSON Schema. Il solo JSON valido non basta, quindi controlla anche tipi e valori dei campi.
  • I proxy continuano a contare, per il recupero. L’LLM non aggira i blocchi; per raccogliere pagine su larga scala servono come sempre IP residential a rotazione.
  • Costo e scala sono il compromesso. Le chiamate LLM hanno un costo per token, quindi l’estrazione AI eccelle su target disordinati, vari o a basso volume; le pagine uniformi ad alto volume costano meno con i selettori.

Cos’è il web scraping con AI?

Il web scraping tradizionale trova i dati in base alla posizione: scrivi un selettore come .price ed estrai ciò che si trova lì. È veloce ed economico, ma fragile: basta cambiare il markup perché il selettore smetta di funzionare, e ogni nuovo sito richiede nuovi selettori. Il web scraping con AI ribalta questo approccio: fornisci il contenuto della pagina a un modello linguistico insieme alla descrizione di ciò che cerchi e il modello restituisce i dati comprendendo il testo. Lo strato di selettori fragili e specifici per sito scompare. Questo è il suo fascino: resistenza al cambiamento e molto meno codice per ogni sito. Ecco perché il web scraping con AI è diventato un approccio a sé, accanto a quello classico e agli strumenti di scraping AI costruiti attorno a esso.

Quando conviene il web scraping con AI

  • Pagine disordinate e incoerenti: annunci, directory o PDF dalla struttura variabile; l’LLM li normalizza senza codice personalizzato per ogni layout.
  • Molti siti diversi, un solo schema: estrai gli stessi campi da decine di fonti, quando scrivere selettori per ciascuna non è pratico.
  • Layout che cambiano spesso: target che si rinnovano di frequente e continuano a far smettere di funzionare gli scraper basati sui selettori.
  • Volume minore, valore maggiore: casi in cui il costo LLM per pagina è giustificato dal valore dei dati.

Per le pagine uniformi ad alto volume, un sito con milioni di template identici, i selettori tradizionali sono ancora più economici e veloci. Molti team adottano un approccio ibrido: selettori per la massa dei casi, estrazione AI per i casi limite più disordinati.


Come fare web scraping con AI in Python

Passaggio 1. Recupera e pulisci la pagina. Recupera la pagina tramite un proxy, quindi rimuovi script, stili e rumore per fornire al modello solo il segnale utile. Così riduci anche drasticamente il costo dei token.



import requests
from bs4 import BeautifulSoup

HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                         "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}
# Residential proxies for the FETCH step (the LLM doesn't fetch the page for you).
proxies = {"http":  "http://LOGIN:[email protected]:823",
           "https": "http://LOGIN:[email protected]:823"}

def fetch_clean(url):
    """Get the page and strip it down so you send the model signal, not noise
    (and far fewer tokens)."""
    r = requests.get(url, headers=HEADERS, proxies=proxies, timeout=30)
    r.raise_for_status()
    soup = BeautifulSoup(r.text, "html.parser")
    for tag in soup(["script", "style", "noscript", "svg"]):
        tag.decompose()
    text = soup.get_text(" ", strip=True)
    if len(text) < 200 or "captcha" in text.lower():   # likely a block/empty page
        raise RuntimeError("Got a block/empty page, not real content")
    return text





















Passaggio 2. Estrai con un LLM usando uno schema. Invia il contenuto pulito a un modello con una struttura di output definita e chiedi solo JSON. Lo schema trasforma un modello prolisso in un parser affidabile, e devi convalidare che il risultato sia effettivamente analizzabile.



import json

# Define the structure you want back — the schema is what makes output reliable.
SCHEMA = {"title": "string", "price": "number or null",
          "in_stock": "boolean", "rating": "number or null"}

def extract_with_llm(content, schema):
    """Ask any LLM to return ONLY JSON matching the schema. Plug in your
    provider's client (Claude, GPT, a local model — your choice)."""
    prompt = (f"Extract these fields as JSON, nothing else.\n"
              f"Schema: {json.dumps(schema)}\n\nPage text:\n{content[:8000]}")
    raw = call_your_llm(prompt)          # -> your LLM client returns a string
    return json.loads(raw)               # validate it parses; retry on failure

data = extract_with_llm(fetch_clean("https://example-store.com/product/123"), SCHEMA)
print(data)
















Passaggio 3. Convalida e riprova. Considera il modello fallibile: convalida l’output rispetto a uno schema reale, Pydantic o JSON Schema. Il solo parsing non prova che sia corretto. Controlla tipi e valori dei campi, per esempio un prezzo numerico e la disponibilità come booleano, e invia di nuovo il prompt in caso di errore. Passaggio 4. Scala. Usa la cache in modo aggressivo, raggruppa le richieste quando possibile e tieni d’occhio la spesa per i token: è questa la leva dei costi nel web scraping con AI.


Servono ancora proxy per il web scraping con AI?

Spesso sì: l’LLM gestisce l’estrazione, non l’accesso. Recuperare pagine resta normale web scraping: i siti target applicano limiti di frequenza, personalizzano in base alla geografia e segnalano gli IP datacenter, quindi la raccolta su larga scala tende a incontrare gli stessi ostacoli, anche se API, feed con licenza o crawling educato a basso volume possono talvolta evitare i proxy. I residential proxy instradano la fase di recupero attraverso IP reali di utenti nel mercato giusto: DataImpulse a $1/GB, a rotazione, in 195 paesi. Questo aiuta il geo-targeting e riduce i blocchi, senza garantire l’accesso né la conformità. L’AI cambia il modo in cui fai il parsing, non quello in cui raccogli. Consulta i migliori proxy per lo scraping AI per questo livello e i migliori proxy per il web scraping per le basi.

Il web scraping con AI è legale?

Usare un LLM per analizzare le pagine non cambia il quadro legale: la raccolta segue le stesse regole di qualsiasi scraping e il fatto che i dati siano pubblici non elimina questioni di copyright, contratto, privacy o diritti sulle banche dati. La liceità dipende dalla giurisdizione, dalla fonte, dal tipo di dati e dall’uso. Privilegia dati pubblici e non personali, rispetta i termini di ogni sito, considera robots.txt per ciò che è, ossia un segnale della politica di accesso, non aggirare login o controlli di accesso e modera il ritmo delle richieste. Fornire a un modello contenuti estratti aggiunge una seconda questione, la provenienza per l’addestramento o l’uso a valle, quindi mantieni pulite le fonti. Usare proxy per una raccolta appropriata è generalmente lecito, ma eludere blocchi, controlli di accesso o limiti contrattuali aumenta il rischio. Per il quadro di riferimento, consulta se il web scraping è legale. Sono informazioni generali, non consulenza legale.


Domande frequenti

Cos’è il web scraping con AI?

Il web scraping con AI usa un modello linguistico di grandi dimensioni per estrarre dal contenuto di una pagina i campi che ti servono, invece di scrivere selettori CSS/XPath che smettono di funzionare quando cambiano i layout. Recuperi comunque la pagina, e per questo hai ancora bisogno di proxy, ma il modello gestisce il parsing comprendendo il testo, quindi lo stesso codice funziona dopo restyling e su siti diversi.

In cosa differisce il web scraping con AI da quello tradizionale?

Lo scraping tradizionale individua i dati tramite selettori, come .price, e smette di funzionare quando cambia il markup; lo scraping AI estrae in base al significato, quindi non esiste uno strato di selettori fragili per ogni sito. Il compromesso è il costo: le chiamate LLM si pagano per token. L’estrazione AI è quindi adatta a target disordinati, vari o in evoluzione, mentre i selettori restano più economici per pagine uniformi ad alto volume.

Servono ancora proxy per il web scraping con AI?

Sì. L’LLM analizza il contenuto ma non recupera le pagine né aggira i blocchi. Raccogliere pagine su larga scala incontra ancora limiti di frequenza, personalizzazione geografica e segnalazioni degli IP datacenter, quindi instradi la fase di recupero attraverso residential proxy a rotazione. L’AI cambia solo la fase di parsing.

Come rendo affidabile l’estrazione con LLM?

Fornisci al modello uno schema definito e chiedi solo JSON, inviagli il testo pulito della pagina, rimuovendo script e stili per ridurre rumore e token, quindi convalida che l’output sia analizzabile e che i tipi dei campi abbiano senso. In caso di errore, invia di nuovo il prompt. Senza schema e convalida, il testo libero del modello non è affidabile.

Il web scraping con AI è legale?

Usare un LLM per analizzare le pagine non cambia le regole: la raccolta segue le stesse leggi di qualsiasi scraping e anche i dati pubblici possono avere implicazioni di copyright, contratto o privacy, a seconda della giurisdizione, della fonte e dell’uso. Privilegia dati pubblici e non personali, rispetta i termini del sito, considera robots.txt un segnale della politica di accesso, non aggirare i login e modera il ritmo delle richieste. Mantieni pulita la provenienza se i dati alimentano un modello. Usare proxy per una raccolta appropriata è generalmente lecito. Non è consulenza legale.


Conclusione

Il web scraping con AI sposta la parte fragile, il parsing, dai selettori scritti a mano a un LLM che legge in base al significato. Così il tuo scraper resiste alle modifiche del layout e funziona su più siti con un solo schema. Non è magia né è gratuito: recuperi comunque le pagine, tramite residential proxy su larga scala, rispetti comunque i limiti legali e valuti il costo dei token rispetto al valore dei dati, spesso combinando estrazione AI e selettori. Imposta correttamente il livello di recupero e l’LLM gestirà il resto più disordinato. Per gli strumenti, consulta i migliori strumenti di web scraping con AI; per il livello proxy, i migliori proxy per lo scraping AI.

Ultimo aggiornamento: 26 giugno 2026.



Share article: