Come estrarre dati prodotto da Amazon senza farsi bloccare
Risultati di ricerca, prezzi, valutazioni e ASIN da Amazon in JSON: perché il fai-da-te fallisce in fretta, quanto costano i dati, e un esempio Python testato. Agosto 2026.

Monitoraggio prezzi, controllo dei concorrenti, arricchimento del catalogo: partono tutti dallo stesso bisogno, i dati prodotto di Amazon come campi strutturati invece che HTML. Ecco come ottenerli in modo affidabile, con un esempio testato e il costo reale per richiesta.
Perché lo scraping diretto di Amazon fallisce?
Amazon gestisce una delle infrastrutture anti-bot più aggressive del web pubblico, e ti fa fallire per gradi invece che tutto in una volta:
- I blocchi arrivano in fretta. Gli IP da datacenter ricevono il controllo anti-robot dopo una manciata di richieste. I proxy residenziali durano di più ma costano denaro vero al gigabyte, e Amazon profila attivamente il comportamento della sessione, non solo gli IP.
- Il markup cambia in continuazione. Amazon fa A/B test dei layout per marketplace, per categoria e per sessione. Un parser che oggi funziona sull’elettronica di
amazon.comdomani si rompe sui casalinghi diamazon.de. - Il fallimento silenzioso è peggio di quello rumoroso. Invece di una pagina di errore spesso ricevi una pagina degradata: niente prezzo, niente valutazione, solo risultati sponsorizzati. La tua pipeline continua a girare e riempie il database di buchi, in silenzio.
Risultato: la via fai-da-te non è uno script, è un budget proxy più una squadra che mantiene i parser. Se i dati prodotto non sono il tuo prodotto, è il posto sbagliato dove spendere tempo di ingegneria.
La versione che funziona
import requests
API_KEY = "faf_live_..." # la tua chiave FastAF
resp = requests.get(
"https://api.fastaf.co/v1/amazon",
params={
"query": "mechanical keyboard",
"domain": "com",
},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
for item in resp.json()["results"]:
if item["type"] == "search_product":
print(f'{item["price"]:>8} {item["stars"]}★ ({item["total_reviews"]}) {item["asin"]} {item["title"][:60]}')
Abbiamo eseguito esattamente questa richiesta scrivendo questo post (agosto 2026). Una ricerca ha restituito 16 prodotti organici più i blocchi sponsorizzati, per 1 credito, e ogni prodotto porta: asin, price ed extracted_price (numerico), old_price per gli sconti barrati, stars, total_reviews, number_of_people_bought (“3K+ bought in past month”), is_best_seller, is_amazon_choice, has_prime, limited_time_deal, stime di consegna e URL del prodotto. Il parametro domain cambia marketplace (com, co.uk, de, it, …), page scorre le pagine, postal_code localizza disponibilità e consegna.
Endpoint di ricerca o di prodotto?
L’endpoint di ricerca qui sopra risponde a “cosa si posiziona per questa query e a che prezzo”. Per i dati completi di una singola scheda, passa un ASIN:
resp = requests.get(
"https://api.fastaf.co/v1/amazon",
params={"resource": "product", "asin": "B0CF3VGQFL", "domain": "com"},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
Questo restituisce l’intera pagina prodotto come campi: bullet point, descrizione, immagini, varianti, informazioni su venditore e buybox, posizioni in categoria. Lo schema pratico per il monitoraggio prezzi è: cerca una volta per scoprire ASIN e posizioni, poi interroga l’endpoint prodotto solo per le schede che tracci davvero.
Quanto costano i dati di Amazon?
Una richiesta Amazon su FastAF costa 1 credito, l’endpoint più economico che serviamo, perché non serve rendering JavaScript. In concreto, ai prezzi di agosto 2026:
| Volume | Crediti | Pacchetto che lo copre | Costo |
|---|---|---|---|
| 1.000 prodotti, aggiornati ogni giorno | 30.000 (30 giorni) | Growth, $29 | ~$11,60 del pacchetto |
| 10.000 prodotti, aggiornati ogni giorno | 300.000 (30 giorni) | Scale, $99 | l’intero pacchetto |
| Scansione una tantum di 50.000 articoli | 50.000 | Growth, $29 | ~$19,30 del pacchetto |
Una richiesta fallita o bloccata non viene mai fatturata: i crediti vengono riservati alla partenza e restituiti se non torna nessun risultato. Il piano gratuito è di 500 crediti senza carta, cioè 500 richieste Amazon, abbastanza per validare la copertura dei campi sulla tua categoria prima di pagare qualsiasi cosa.
Gli errori che costano davvero
Tracciare con la ricerca invece che con l’endpoint prodotto. I risultati di ricerca omettono i dati per venditore e possono riordinarsi; gli ASIN sono stabili. Scopri con la ricerca, traccia con resource=product.
Ignorare extracted_price. Il campo price è una stringa da mostrare (“$69.99”); extracted_price è il numero. Fare parsing a regex delle stringhe di prezzo è il modo in cui nascono i bug di valuta.
Aggiornare tutto alla stessa frequenza. I prezzi delle schede volatili (offerte, battaglie di buybox) si muovono ogni ora; la coda lunga del catalogo si muove ogni settimana. Dividi i livelli di aggiornamento e gran parte del budget crediti sparisce.
Assumere un solo marketplace. Lo stesso ASIN può differire in prezzo, disponibilità e perfino titolo tra com, de e co.jp. Se vendi in tre mercati, traccia tre valori di domain; sono tre crediti, non uno.