# Come estrarre i dati delle inserzioni e delle vendite di eBay per la ricerca dei prezzi

La cronologia delle inserzioni vendute su eBay è la cosa più vicina a un database di prezzi di mercato libero — se conosci i due parametri URL che la sbloccano. Ecco come estrarre inserzioni, varianti e prezzi di transazione reali su larga scala.

eBay è uno dei più grandi mercati peer-to-peer sul web, il che lo rende una miniera d'oro per la ricerca dei prezzi, il monitoraggio dei concorrenti e la valutazione della rivendita. Ha un SDK per sviluppatori ufficiale, ma i dati più utili — **quello per cui gli articoli sono effettivamente venduti** — sono più facili da raccogliere direttamente dalle pagine di ricerca pubbliche. Questa guida mostra come estrarre inserzioni di eBay, dati delle varianti e prezzi di vendita reali, oltre alla configurazione del proxy che mantiene un estrattore attivo oltre le prime centinaia di richieste.

## L'URL di ricerca è l'API

Quando cerchi su eBay, la query è interamente codificata nell'URL, e una manciata di parametri controlla esattamente cosa viene restituito. Padroneggia questi cinque e potrai gestire il catalogo di eBay programmaticamente senza toccare un browser:

- `_nkw` — la parola chiave di ricerca (codifica gli spazi come +).
- `_sacat` — restrizione di categoria (0 = tutte le categorie).
- `_sop` — ordine di ordinamento (es. appena elencati, prezzo + spedizione).
- `_pgn` — numero di pagina per la paginazione.
- `_ipg` — articoli per pagina (predefinito 60; massimo pratico per richiesta).

Il parametro di ordinamento `_sop` merita una menzione: i suoi valori ordinano i risultati per appena elencati, prezzo totale più basso incluso spedizione, o in scadenza più presto, il che ti permette di creare feed mirati — nuove inserzioni per un monitor di cambiamenti, totale più economico per un cercatore di offerte. Restringere con `_sacat` riduce una parola chiave ampia al dipartimento giusto, eliminando il rumore prima di analizzare una singola riga. Parola chiave, categoria e ordinamento insieme ti permettono di esprimere la maggior parte delle query di ricerca come un singolo URL, il che rende eBay piacevole da automatizzare.

```python
import requests
from urllib.parse import urlencode

proxy = "http://USER:PASS@residentialpremium.quantumproxies.io:8080"
proxies = {"http": proxy, "https": proxy}

def search_url(keyword, page=1, per_page=60, category=0):
    params = {"_nkw": keyword, "_sacat": category,
              "_ipg": per_page, "_pgn": page}
    return "https://www.ebay.com/sch/i.html?" + urlencode(params)

r = requests.get(search_url("vintage seiko watch"),
                 proxies=proxies, timeout=20)
print(r.status_code)  # parse r.text with your HTML library of choice
```

![Codice Python che costruisce un URL di ricerca eBay da quattro parametri con urlencode e lo scarica attraverso un proxy residenziale; la scheda spiega ogni parametro: _nkw è la parola chiave, _sacat la categoria con 0 per tutte, _pgn il numero di pagina e _ipg gli articoli per pagina, 60 per impostazione predefinita.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335161/blog/generated/qp-b9-023-diag1.png)
*La pagina di ricerca pubblica di eBay si comporta come un'API — i parametri sono la query, il markup è la risposta.*

## Inserzioni vendute e completate: il vero prezzo di mercato

Questo è l'endpoint che conta per i prezzi. Le inserzioni attive ti dicono solo cosa i venditori *sperano* di ottenere; molte non vendono mai. eBay espone la cronologia delle transazioni reali sulla stessa pagina di ricerca tramite due parametri extra: `LH_Complete=1` mostra tutte le inserzioni completate, e `LH_Sold=1` restringe agli articoli che sono stati realmente venduti. Su un'inserzione venduta, il prezzo è il valore finale di vendita, non un prezzo richiesto — il che rende questa la fonte gratuita più pulita di ciò che le cose valgono realmente:

```python
def sold_url(keyword, page=1):
    # append the completed + sold filters to any search
    return ("https://www.ebay.com/sch/i.html?"
            f"_nkw={keyword.replace(' ', '+')}"
            "&LH_Complete=1&LH_Sold=1"
            f"&_ipg=60&_pgn={page}")

# every sold row = a real transaction: use median, not mean,
# to shrug off outliers and shill bids
r = requests.get(sold_url("nike dunk low panda 10"),
                 proxies=proxies, timeout=20)
```

Poiché la pagina venduta utilizza lo stesso markup di una ricerca standard, il tuo analizzatore di elenchi la gestisce invariata — basta aggiungere i due filtri. Prendi la **mediana** degli ultimi 30-60 prezzi venduti piuttosto che la media, e ottieni un valore di mercato robusto che i flussi di lavoro di [monitoraggio dei prezzi dei concorrenti](https://quantumproxies.io/blog/competitor-price-monitoring-with-proxies) possono fidarsi.

## Analisi di un'inserzione: prezzo, specifiche e varianti

Un'inserzione a variante singola è semplice: il prezzo si trova nell'elemento prezzo principale, la tabella delle specifiche dell'articolo (condizione, marca, modello, dimensione) è un insieme di coppie etichetta/valore, e la descrizione vive in un `iframe` che puoi recuperare separatamente. Fai attenzione alla conversione dei prezzi regionali di eBay — alcune regioni ottengono un prezzo convertito accanto all'originale, quindi cattura entrambi.

I prodotti multi-variante (un telefono con opzioni di modello, memoria e colore) sono più complicati perché i prezzi per opzione vengono aggiornati da JavaScript. Questi dati non sono nell'HTML visibile — sono dati web nascosti, memorizzati in una variabile JavaScript chiamata `MSKU` all'interno di un tag `<script>`. Estrai quel JSON e ottieni il prezzo e lo stock di ogni variante in un colpo solo, senza rendere la pagina:

```python
import re, json

def extract_msku(html):
    # the variant matrix lives in a JS object keyed 'MSKU'
    m = re.search(r'"MSKU"\s*:\s*(\{.*?\})\s*[,}]', html, re.S)
    if not m:
        return {}          # single-variant listing, no matrix
    data = json.loads(m.group(1))
    # data now holds per-variant price, currency and stock flags
    return data

variants = extract_msku(r.text)
```

![Inserzioni eBay attive accanto alle inserzioni vendute per la stessa ricerca: le righe attive mostrano prezzi richiesti che potrebbero non vendere mai, le righe vendute mostrano i prezzi finali delle transazioni; la scheda mostra i due filtri, LH_Complete=1 e LH_Sold=1, e la mediana degli ultimi 30-60 prezzi di vendita come valore di mercato.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785335161/blog/generated/qp-b9-023-diag2.png)
*Per la valutazione, estrai sempre il filtro venduto: i prezzi attivi sono desideri, i prezzi venduti sono il mercato.*

## Rimanere sbloccati su larga scala

Un'inserzione è banale. La scala è dove eBay reagisce — con limitazioni di velocità, sfide CAPTCHA e contenuti dinamici che segnalano schemi automatizzati. Gli IP dei datacenter vengono limitati rapidamente sui mercati; la soluzione affidabile sono i [proxy residenziali](https://quantumproxies.io/residential-proxies) che si presentano come acquirenti ordinari, ruotati in modo che nessun singolo IP accumuli un picco evidente. Ritma le richieste, rispetta ogni 429 con backoff, e localizza la tua uscita quando hai bisogno di prezzi specifici per regione, poiché eBay adatta risultati e valuta per geografia.

Quando un target aggiunge una gestione bot più pesante o preferisci non mantenere lo stack di analisi e rotazione da solo, un [Scraper API](https://quantumproxies.io/scraper-api) gestisce la rotazione degli IP, il rendering JS e i tentativi dietro un endpoint e restituisce HTML pulito, JSON o markdown. Per il playbook del mercato più ampio, la nostra guida su [automazione del mercato su Amazon, eBay ed Etsy](https://quantumproxies.io/blog/proxies-for-marketplace-automation-amazon-ebay-etsy) copre la sicurezza degli account e il targeting geografico.

[Estrai dati da eBay con proxy residenziali puliti](https://quantumproxies.io/residential-proxies)

## Dall'estrazione al dataset

Una volta che le righe fluiscono, la disciplina è la deduplicazione e la cronologia. Chiave ogni record con il suo id articolo di eBay in modo che una nuova estrazione aggiorni la riga esistente invece di duplicarla, e memorizza il prezzo con un timestamp e la condizione dell'articolo ad ogni estrazione — un prezzo venduto significa qualcosa solo accanto alla sua data e se l'articolo era nuovo o usato. Mantieni una finestra mobile di dati venduti recenti per prodotto e hai una valutazione live che si aggiorna da sola, che è la base di qualsiasi strumento di rivendita, riprezzo o arbitraggio. Abbina questo con avvisi su movimenti di prezzo improvvisi e il dataset inizia a fare il monitoraggio per te.

## È legale estrarre dati da eBay?

Queste sono informazioni generali, non consigli legali. Raccogliere dati di inserzioni pubblicamente disponibili — prezzi, condizioni, cronologia delle vendite — a ritmi rispettosi è ampiamente considerato legittimo. La linea da osservare è quella dei dati personali: i nomi dei venditori, le posizioni e i dettagli di contatto sono protetti dal GDPR nell'UE e da leggi simili altrove, quindi evita di memorizzarli senza una base legale. Estrai il segnale di mercato, non le persone.

## Domande frequenti

### Come faccio a estrarre le inserzioni vendute di eBay?

Prendi qualsiasi URL di ricerca di eBay e aggiungi `LH_Complete=1&LH_Sold=1`. Questo cambia i risultati in inserzioni completate che sono state effettivamente vendute, dove il prezzo visualizzato è il valore finale della transazione. La pagina utilizza lo stesso markup di una ricerca normale, quindi lo stesso analizzatore estrae titolo, prezzo e data di vendita per la ricerca dei prezzi.

### Posso estrarre i prezzi di eBay senza l'API ufficiale?

Sì. Le pagine di ricerca e di inserzione pubbliche restituiscono tutto ciò che un acquirente vede, senza quota o OAuth. I parametri di ricerca (`_nkw`, `_sacat`, `_pgn`, `_ipg`) guidano le query e la paginazione, e le pagine dei prodotti contengono prezzo, specifiche dell'articolo e dati delle varianti. Avrai bisogno di proxy residenziali rotanti per sostenere il volume senza essere limitato.

### Come ottengo i prezzi delle varianti di eBay?

Le inserzioni multi-opzione memorizzano il loro prezzo e stock per variante in un oggetto JavaScript chiamato `MSKU` incorporato in un tag script, non nell'HTML visibile. Estrai quel blocco JSON e ottieni il prezzo di ogni combinazione senza rendere la pagina o cliccare su ogni opzione — molto più veloce e affidabile che guidare un browser.

### Perché il mio estrattore di eBay viene bloccato?

eBay applica limitazioni di velocità e sfide CAPTCHA al traffico che sembra automatizzato, e gli intervalli di IP dei datacenter vengono limitati rapidamente. Distribuisci le richieste su IP residenziali rotanti, ritmale con ritardi, arretra su ogni 429 e mantieni le intestazioni coerenti. Se le sfide persistono, uno Scraper API che ruota gli IP e rende JavaScript rimuove il carico di manutenzione.

Estrai la pagina di ricerca come un'API, sblocca la cronologia delle vendite con due parametri, estrai matrici di varianti dal JSON incorporato e instrada tutto attraverso IP residenziali puliti. Fai questo e eBay diventa un dataset di prezzi live che controlli.

[Estrai dati da eBay senza gestire lo stack](https://quantumproxies.io/scraper-api)
