Abbiamo confrontato i migliori cinque provider di web scraping su Zillow, uno dei principali domini immobiliari, eseguendo oltre 1.250 richieste di scrape tra tutti i provider. Ogni provider ha ricevuto un set identico di URL di annunci immobiliari ed è stato valutato in base al tempo di completamento, al tasso di successo e al numero di campi di dati strutturati restituiti per annuncio.
Benchmark dello scraping di Zillow
Abbiamo anche analizzato il tempo di completamento specificamente per le attività in cui tutti i provider hanno avuto successo. I risultati sono stati quasi identici ai tempi di completamento complessivi, indicando che le richieste fallite non hanno aumentato significativamente il tempo medio di completamento per nessun provider.
Puoi leggere la nostra sezione metodologia del benchmark per maggiori dettagli sul processo di test.
Quali dati puoi estrarre da Zillow?
Poiché Apify era l'unico provider a restituire output strutturato in JSON, è stato l'unico con campi di metadati misurabili. Apify ha restituito 185 campi di metadati per Zillow. I restanti provider hanno restituito HTML renderizzato, che è stato analizzato localmente utilizzando selettori CSS e quindi non ha prodotto conteggi di metadati comparabili.
Campi di metadati disponibili di Apify per Zillow
Risultati del benchmark dello scraping di Zillow
Oxylabs ha registrato il tasso di successo più basso in questo confronto, pari all'89%, e anche il tempo medio di completamento più elevato, intorno ai 59 secondi. Ha utilizzato una fonte di scraping Zillow dedicata, ma ciò non si è tradotto in un vantaggio di velocità o affidabilità su questo particolare dataset.
Decodo ha registrato un tasso di successo del 97%, il secondo più alto dopo Apify. Tuttavia, il suo tempo di completamento è stato notevolmente più alto, intorno ai 51 secondi, collocandolo tra i provider più lenti. Ha ottenuto questo risultato utilizzando una configurazione di scraping generico, senza alcuna impostazione specifica per Zillow.
Apify ha raggiunto un tasso di successo del 100% su Zillow con un tempo di completamento di circa 17 secondi. È stato l'unico provider a restituire output strutturato in JSON, il che lo ha reso anche l'unico con campi di metadati misurabili, con una media di 185 punti dati per annuncio.
Nimble è stato il provider più veloce nel benchmark, completando le richieste in circa 12 secondi in media. Il suo tasso di successo si è attestato al 92%, mantenendolo nella metà superiore del confronto. La combinazione di velocità e affidabilità lo ha reso uno dei risultati più equilibrati su questo dominio.
Zyte ha raggiunto un tasso di successo del 92% con un tempo di completamento di circa 46 secondi. Si è posizionato in un intervallo simile a Nimble per quanto riguarda il successo, ma è stato considerevolmente più lento. Il risultato è stato costante ma non si è distinto in nessuna direzione.
Metodologia del benchmark
Abbiamo testato cinque provider di web scraping (Apify, Decodo, Oxylabs, Nimble, Zyte) su zillow.com.
Dataset
Abbiamo preparato 250 URL di pagine di prodotto da Zillow. Le pagine di prodotto sono annunci immobiliari individuali con dettagli come indirizzo, prezzo, camere da letto, bagni, metratura e cronologia della proprietà.
Tutti gli URL sono stati verificati come accessibili prima del benchmark. Gli URL seguivano il formato standard della pagina dei dettagli di Zillow (/homedetails/…/zpid/).
Configurazione condivisa
Tutti i provider hanno ricevuto URL identici dallo stesso dataset e sono stati testati nelle stesse condizioni:
- Esecuzione sequenziale: una richiesta alla volta, nessuna richiesta parallela
- Ritardo tra le richieste: 2 secondi
- Gestione del limite di richieste: attesa di 30 secondi con fino a 3 nuovi tentativi in caso di HTTP 429
- Timeout di invio: 300 secondi
- Timeout di esecuzione: 600 secondi
- Ogni URL è stato testato una volta per provider
Configurazioni dei provider
Apify
Apify ha utilizzato l'attore maxcopell/zillow-detail-scraper, che restituisce JSON strutturato con campi analizzati. Non è stata necessaria l'analisi tramite selettori CSS. Le esecuzioni dell'attore sono state controllate a intervalli di 1 secondo fino a quando lo stato non ha raggiunto SUCCEEDED.
Decodo
Decodo ha utilizzato l'API Universal Scraper (target: universal, headless: html), che restituisce HTML renderizzato con JavaScript. La risposta è stata analizzata localmente con selettori CSS. Tutte le richieste includevano un'intestazione User-Agent desktop.
Oxylabs
Oxylabs ha utilizzato l'API Realtime con source: zillow e render: html, che restituisce HTML renderizzato con JavaScript. La risposta è stata analizzata localmente con selettori CSS.
Nimbleway
Nimble ha utilizzato l'API Extract con render: true e driver: vx10 (browser headless stealth). La risposta è stata analizzata localmente con selettori CSS. Non è stata applicata alcuna configurazione specifica per il dominio.
Zyte
Zyte ha utilizzato l'API Extract con browserHtml: true, che restituisce HTML renderizzato con JavaScript tramite un browser Chromium headless. La risposta è stata analizzata localmente con selettori CSS. Non è stata applicata alcuna configurazione specifica per il dominio.
Validazione
Verifica dello stato HTTP
Prima della validazione, il codice di risposta HTTP del provider viene controllato per primo. Le risposte con codici di stato tra 200-399 e 404 sono considerate invii riusciti e procedono alla fase di validazione. Qualsiasi altro codice di stato (400, 403, 500, 550, ecc.) viene trattato come invio fallito e il test viene immediatamente contrassegnato come fallito senza entrare nella fase di validazione.
Regole di validazione
I test che superano la verifica dello stato HTTP vengono convalidati nel seguente ordine:
- Rilevamento 404: Se il contenuto della pagina o l'errore dell'API indica che la pagina non esiste più ("pagina non trovata", "non esiste", "dead_page"), il test viene contrassegnato come valido. Il provider ha identificato correttamente una pagina non disponibile.
- Estrazione dei dati (JSON API): Per i provider che restituiscono JSON strutturato, almeno un campo dati deve essere presente e non vuoto, con un tipo valido a seconda del campo (stringa o intero). I campi controllati includono indirizzo, prezzo, camere da letto, bagni e metratura.
- Estrazione dei dati (HTML): Per i provider che restituiscono HTML, la risposta viene analizzata con selettori CSS specifici per Zillow. Se almeno un selettore corrisponde e restituisce un valore non vuoto, il test viene superato.
- Indicatore di pagina (solo HTML): Se non sono stati estratti elementi di dati ma almeno uno dei selettori CSS predefiniti per Zillow ha corrisposto a un elemento sulla pagina, il test viene contrassegnato come valido. Ciò conferma che la pagina è stata renderizzata e caricata, anche se non sono stati trovati elementi di dati strutturati nei contenitori previsti.
- Se nessuna delle condizioni sopra indicate è soddisfatta, il test fallisce. Le cause comuni di fallimento includono pagine con captcha/sfida bot, rendering JavaScript insufficiente, errori di connessione proxy ed errori del crawler.
Metriche
Tasso di successo della validazione: La percentuale di URL testati in cui il provider ha restituito dati utilizzabili, calcolata come test riusciti divisi per il totale dei test.
Tempo di completamento: Il tempo totale dall'invio della richiesta di scrape alla ricezione dei risultati convalidati, misurato in secondi. Per i provider asincroni, lo stato di completamento del lavoro è stato controllato a intervalli di 1 secondo. Riportato come media aritmetica su tutte le esecuzioni di un gruppo.
Metadati disponibili: Il numero di nomi di campo univoci restituiti dal provider tra tutti gli elementi di una risposta. Applicabile solo alle risposte JSON API.
FAQ
Le API strutturate restituiscono punti dati convalidati come prezzo, indirizzo, camere da letto e metratura in formati coerenti. Quando si utilizzano provider basati su HTML, verificare i dati estratti rispetto ad annunci noti e controllare la presenza di campi mancanti causati dal rendering dinamico della pagina o da reindirizzamenti anti-bot.
Sì, la maggior parte dei provider di scraping supporta sia gli annunci di affitto che quelli di vendita su Zillow. La struttura dell'URL differisce tra i due, quindi il tuo dataset dovrebbe includere il tipo di annuncio corretto. Alcuni provider utilizzano configurazioni o ID dataset separati per gli affitti rispetto alle vendite.
Per gli URL di prodotto (annunci individuali), l'impaginazione non è necessaria poiché ogni URL restituisce una singola proprietà. Per gli URL di ricerca che restituiscono più risultati, i provider gestiscono l'impaginazione in modo diverso. Alcune API strutturate accettano un parametro limite per controllare il numero di risultati per richiesta, mentre i provider basati su HTML restituiscono solo gli annunci visualizzati sulla prima pagina.
Zillow utilizza CAPTCHA, blocco IP e rendering JavaScript dinamico per prevenire l'accesso automatizzato. I fallimenti comuni includono risposte vuote da richieste bloccate, dati incompleti da pagine che non sono state renderizzate completamente e annunci non più validi che restituiscono 404. L'utilizzo di provider con API Zillow dedicate o rendering con browser headless riduce questi problemi.
I dati estratti da Zillow possono essere utilizzati per monitorare le tendenze dei prezzi per quartiere, confrontare i prezzi degli annunci con gli Zestimate, monitorare i giorni sul mercato, analizzare il prezzo per metro quadro tra i codici postali e identificare proprietà sottovalutate. Le API strutturate che restituiscono campi come la cronologia dei prezzi e le valutazioni fiscali forniscono dati più approfonditi per l'analisi degli investimenti.
Cita questa ricerca
Scegli il formato adatto a dove pubblicherai. Incollare la versione con link nel tuo CMS preserva il backlink.
@misc{ipi2026,
author = {Şipi, Nazlı},
title = {{Migliori Zillow Scraper API a confronto: Revisione delle prestazioni}},
year = {2026},
month = apr,
howpublished = {\url{https://aimultiple.com/scraping-zillow}},
note = {AIMultiple. Consultato il 28 Aprile 2026}
}
Sii il primo a commentare
Il tuo indirizzo email non verrà pubblicato. Tutti i campi sono obbligatori. I commenti vengono lasciati nella loro lingua originale.