Ho testato 4 modi per estrarre i Best Seller Amazon con Python e ...

Ultimo aggiornamento il April 17, 2026

Lo scorso weekend ho bruciato praticamente un pentolino intero di caffè per provare a estrarre la pagina Best Seller di Amazon in quattro modi diversi. Due hanno funzionato alla grande, uno ha rischiato quasi di farmi bannare l’IP e uno mi ha richiesto letteralmente due click. Qui sotto ti lascio tutto quello che ho imparato.

Amazon è un gigante del marketplace: , e un sistema Best Sellers Rank (BSR) che si aggiorna ogni ora. Se fai product research per FBA, analisi dei prezzi dei competitor o vuoi semplicemente intercettare i trend prima degli altri, i dati dei Best Seller valgono davvero oro.

Ma tirare fuori questi dati da Amazon e portarli in un foglio di calcolo? È lì che la faccenda si fa interessante. Ho testato requests + BeautifulSoup, Selenium, una scraping API e (il nostro AI web scraper no-code) per vedere quale approccio funziona davvero — e quali invece ti lasciano davanti a una pagina CAPTCHA.

Cosa sono i Best Seller Amazon e perché dovrebbero interessarti?

Amazon Best Sellers Rank (BSR) è la classifica in tempo reale di Amazon, che ordina i prodotti in base al volume di vendite all’interno di ogni categoria. Pensalo come una classifica di popolarità aggiornata ogni ora, costruita sia sulle vendite recenti sia su quelle storiche. Amazon lo descrive così:

“Il calcolo dei Best Seller Amazon si basa sulle vendite Amazon ed è aggiornato ogni ora per riflettere le vendite recenti e storiche di ogni articolo venduto su Amazon.” —

La pagina Best Sellers mostra i primi 100 prodotti per categoria, distribuiti su due pagine da 50 elementi ciascuna. La pagina 1 copre le posizioni da #1 a #50, la pagina 2 da #51 a #100. Amazon ha confermato che visualizzazioni e recensioni dei clienti NON influenzano il BSR: conta solo il volume di vendite.

Chi ha bisogno di questi dati? Venditori e-commerce che cercano prodotti per FBA, team sales che costruiscono analisi competitive, team operations che monitorano i trend di prezzo e ricercatori di mercato che seguono la crescita delle categorie. Per esperienza, chiunque venda su Amazon o ci faccia concorrenza finisce prima o poi per averne bisogno in un foglio di calcolo.

Perché estrarre i Best Seller Amazon con Python?

La ricerca manuale dei prodotti è una perdita di tempo. Uno ha rilevato che i dipendenti spendono 9,3 ore a settimana solo per cercare e raccogliere informazioni. Per i team e-commerce, questo si traduce in ore passate a navigare le pagine Amazon, copiare nomi prodotto e prezzi e incollarli nei fogli di calcolo — per poi rifare tutto la settimana dopo.

Ecco una panoramica veloce dei casi d’uso che rendono utile l’estrazione dei Best Seller:

Caso d'usoCosa ottieniChi ne beneficia
Ricerca prodotti FBAIndividua prodotti ad alta domanda e bassa concorrenza grazie a BSR e numero di recensioniVenditori Amazon, dropshipper
Prezzi competitiviMonitora le variazioni di prezzo dei prodotti top della tua categoriaTeam e-commerce, analisti pricing
Monitoraggio dei trend di mercatoIndividua categorie in crescita e cambi stagionaliProduct manager, ricercatori di mercato
Lead generationCrea liste di brand best seller e delle loro linee di prodottoTeam sales, outreach B2B
Analisi competitivaConfronta i tuoi prodotti con i leader di categoriaBrand manager, team strategy

Il ritorno sull’investimento è concreto: una su 2.700 professionisti del commercio ha rilevato che gli strumenti AI fanno risparmiare in media ai professionisti e-commerce. E i venditori che usano il monitoraggio automatico dei prezzi mantengono il Buy Box per contro il 42% di chi lo fa manualmente — con un aumento delle vendite del 37% grazie a reazioni più rapide ai cambi di prezzo.

4 modi per estrarre i Best Seller Amazon con Python: confronto rapido

Prima di entrare nei tutorial passo passo, ecco il confronto fianco a fianco che avrei voluto avere prima di iniziare i test. Questa tabella dovrebbe aiutarti a scegliere il metodo giusto per il tuo caso:

Criteriorequests + BS4SeleniumScraping API (es. Scrape.do)Thunderbit (No-Code)
Difficoltà di configurazioneMediaAlta (driver, browser)Bassa (chiave API)Molto bassa (estensione Chrome)
Gestisce il lazy loadingNoSì (simulazione scroll)Sì (HTML renderizzato)Sì (l'AI gestisce il rendering)
Resistenza anti-botBassa (ban IP)Media (rilevabile)Alta (proxy rotanti)Alta (modalità cloud + browser)
ManutenzioneAlta (i selettori si rompono)Alta (aggiornamenti driver + selettori)BassaMolto bassa (l'AI si adatta ai cambi di layout)
CostoGratisGratisA pagamento (per richiesta)Piano gratuito + piani a pagamento
Ideale perEstrazioni spot, apprendimentoPagine pesanti in JS, login richiestoScala / produzioneNon sviluppatori, ricerca veloce, monitoraggio ricorrente

Se vuoi imparare le basi dello scraping con Python, parti dal Metodo 1 o 2. Se ti serve affidabilità in produzione, scegli il Metodo 3. Se vuoi risultati in due click senza scrivere codice, vai dritto al Metodo 4.

Prima di iniziare

  • Difficoltà: Principiante–Intermedio (dipende dal metodo)
  • Tempo richiesto: ~15 minuti per Thunderbit, ~45 minuti per i metodi Python
  • Cosa ti serve: Python 3.8+ (per i Metodi 1–3), browser Chrome, (per il Metodo 4) e l’URL di una categoria Best Sellers di Amazon

Metodo 1: estrarre i Best Seller Amazon con requests + BeautifulSoup

Questo è l’approccio leggero e adatto ai principianti — niente automazione browser, solo richieste HTTP e parsing HTML. E mi ha insegnato tantissimo sulle difese anti-scraping di Amazon.

Passo 1: configura l’ambiente

Installa i pacchetti necessari:

1pip install requests beautifulsoup4 pandas

Poi importa le librerie:

1import requests
2from bs4 import BeautifulSoup
3import pandas as pd
4import random
5import time

Passo 2: invia una richiesta con header realistici

Amazon blocca le richieste che sembrano provenire da bot. La difesa più basilare è usare un header User-Agent che imiti un browser vero. Ecco un esempio con un pool di stringhe User-Agent aggiornate e realistiche (fonte: , marzo 2026):

1USER_AGENTS = [
2    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
3    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
4    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
5    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
6    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",
7]
8headers = {"User-Agent": random.choice(USER_AGENTS)}
9url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
10response = requests.get(url, headers=headers)
11print(response.status_code)  # Dovrebbe essere 200

Se ottieni un codice 200, tutto bene. Se vedi un 503 o vieni reindirizzato a una pagina CAPTCHA, Amazon ha segnalato la richiesta.

Passo 3: analizza i dati prodotto con BeautifulSoup

Controlla l’HTML della pagina Amazon con gli Strumenti per sviluppatori del browser (click destro → Ispeziona). I contenitori dei prodotti usano l’ID gridItemRoot. Dentro ogni contenitore trovi nome prodotto, prezzo, rating e URL.

1soup = BeautifulSoup(response.text, "html.parser")
2products = []
3for item in soup.find_all("div", id="gridItemRoot"):
4    title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
5    price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
6    link_tag = item.find("a", class_="a-link-normal")
7    title = title_tag.get_text(strip=True) if title_tag else "N/A"
8    price = price_tag.get_text(strip=True) if price_tag else "N/A"
9    url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
10    products.append({"Title": title, "Price": price, "URL": url})

Attenzione: le classi con prefisso _cDEzb_ sono hash generati dai CSS module di Amazon e vengono rigenerati periodicamente. L’ID gridItemRoot e la classe a-link-normal sono più stabili, ma verifica sempre i selettori con DevTools prima di eseguire lo scraper.

Passo 4: esporta in CSV

1df = pd.DataFrame(products)
2df.to_csv("amazon_best_sellers.csv", index=False)
3print(f"Estratti {len(products)} prodotti")

Cosa aspettarsi — e cosa può andare storto

Nel mio test, questo metodo ha restituito circa 30 prodotti invece di 50. Non è un bug del codice: è il lazy loading di Amazon. Solo ~30 prodotti vengono renderizzati al caricamento iniziale; gli altri compaiono dopo lo scroll, e questo richiede l’esecuzione di JavaScript che requests non può gestire.

Altre limitazioni:

  • I ban IP arrivano in fretta senza rotazione dei proxy (sono stato bloccato dopo circa 15 richieste consecutive)
  • I selettori CSS si rompono quando Amazon aggiorna il layout della pagina — e succede regolarmente
  • Nessuna gestione della paginazione pronta all’uso

Per imparare lo scraping in Python, questo approccio è ottimo. Per l’uso in produzione, è fragile.

Metodo 2: estrarre i Best Seller Amazon con Selenium

Selenium risolve il problema del lazy loading eseguendo un browser vero — più pesante da configurare, ma cattura tutti i 50 prodotti per pagina.

Passo 1: installa Selenium

1pip install selenium pandas

Buona notizia: dalla versione 4.6 di Selenium in poi non serve più webdriver-manager. Selenium Manager gestisce automaticamente il download dei driver.

1from selenium import webdriver
2from selenium.webdriver.chrome.options import Options
3from selenium.webdriver.common.by import By
4from selenium.webdriver.common.keys import Keys
5import time
6import pandas as pd
7options = Options()
8options.add_argument("--headless=new")
9options.add_argument("--window-size=1920,1080")
10options.add_argument("--disable-blink-features=AutomationControlled")
11driver = webdriver.Chrome(options=options)

L’opzione --headless=new (introdotta in Chrome 109+) usa la stessa pipeline di rendering di Chrome con interfaccia, rendendo più difficile per Amazon rilevare l’automazione.

Passo 2: scorri oltre il lazy loading

Questo è il passaggio che giustifica tutto il sovraccarico di configurazione di Selenium. La pagina Best Sellers di Amazon carica inizialmente solo ~30 prodotti — gli altri appaiono dopo lo scroll.

1def scroll_page(driver, scrolls=5, delay=2):
2    for _ in range(scrolls):
3        driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
4        time.sleep(delay)
5driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
6time.sleep(3)
7scroll_page(driver)

Dopo lo scroll, tutti i 50 prodotti dovrebbero essere presenti nel DOM. Nel mio test, 5 scroll Page Down con 2 secondi di attesa sono bastati, ma potresti dover regolare i valori in base alla velocità della connessione.

Passo 3: estrai i dati prodotto

1items = driver.find_elements(By.ID, "gridItemRoot")
2products = []
3for item in items:
4    try:
5        title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
6    except:
7        title = "N/A"
8    try:
9        price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
10    except:
11        price = "N/A"
12    try:
13        url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
14    except:
15        url = "N/A"
16    products.append({"Title": title, "Price": price, "URL": url})

Avvolgere ogni estrazione in try/except è importante: alcuni prodotti potrebbero essere esauriti o avere campi mancanti, e non vuoi che un singolo elemento difettoso faccia saltare l’intera estrazione.

Passo 4: gestisci la paginazione

Amazon divide i 100 Best Seller in due pagine con URL diversi:

1urls = [
2    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
3    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
4]
5all_products = []
6for url in urls:
7    driver.get(url)
8    time.sleep(3)
9    scroll_page(driver)
10    # ... estrai i prodotti come sopra ...
11    all_products.extend(products)
12driver.quit()

Cosa aspettarsi

Nel mio test, Selenium ha catturato tutti e 50 i prodotti per pagina — una vittoria netta rispetto a requests + BS4. Il lato negativo: ha richiesto circa 45 secondi per pagina (inclusi i ritardi di scroll), e sono stato comunque segnalato dopo averlo eseguito troppe volte senza rotazione dei proxy. Selenium può essere rilevato dai sistemi anti-bot di Amazon anche con le flag anti-detection — per una vera scala, servono misure aggiuntive (vedi il playbook anti-ban più sotto).

Altri punti dolenti:

  • Le differenze tra versioni di WebDriver possono ancora capitare, anche se Selenium Manager le ha ridotte molto
  • I selettori CSS vanno aggiornati ogni volta che Amazon cambia il DOM
  • L’uso di memoria è elevato: ogni istanza del browser consuma 200–400MB di RAM

Metodo 3: estrarre i Best Seller Amazon con una Scraping API

Le scraping API sono l’approccio “lascia fare a qualcun altro la parte difficile”. Servizi come Scrape.do, Oxylabs e ScrapingBee gestiscono rotazione dei proxy, rendering JavaScript e protezioni anti-bot — tu invii solo un URL e ricevi HTML o JSON.

Come funziona

Invii l’URL target all’endpoint API. L’API renderizza la pagina usando un browser vero sulla propria infrastruttura, ruota i proxy, gestisce i CAPTCHA e restituisce HTML pulito. Poi analizzi l’HTML ricevuto con BeautifulSoup come al solito.

Passo 1: invia una richiesta tramite l’API

Ecco un esempio con Scrape.do (i prezzi partono da $29/mese per 150.000 crediti, 1 credito = 1 richiesta indipendentemente dal rendering):

1import requests
2from bs4 import BeautifulSoup
3api_token = "YOUR_API_TOKEN"
4target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
5api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
6response = requests.get(api_url)
7soup = BeautifulSoup(response.text, "html.parser")

Da qui in poi il parsing è identico al Metodo 1: stessi selettori, stessa logica di estrazione.

Reality check sui prezzi

Ecco quanto chiedono le principali API per 1.000 richieste Amazon al loro miglior prezzo disponibile:

ProviderCosto per 1.000 richiesteNote
Scrape.do~$0,19Tariffa fissa, nessun moltiplicatore di crediti
Oxylabs~$1,80Moltiplicatore 5x per il rendering JS
ScrapingBee~$4,90Moltiplicatori 5–25x per funzioni premium
Bright Data$5,00+Dati più completi (686 campi/prodotto) ma anche il più lento (~66 sec/richiesta)

Pro e contro

Pro: alta affidabilità ( su Amazon per i provider migliori), nessuna manutenzione dei driver, gestione automatica dell’anti-bot, buona scalabilità.

Contro: pagamento per richiesta (i costi crescono con la scala), serve comunque scrivere codice di parsing, resti vulnerabile ai cambi di selettori CSS. Per 100.000 pagine/mese, il confronto dei costi totali è drastico: costruire tutto internamente costa circa — un risparmio del 71%.

Il punto di pareggio in genere sta tra 500.000 e 1 milione di richieste al mese. Sotto questa soglia, il risparmio di tempo dell’API supera di gran lunga i costi.

Metodo 4: estrarre i Best Seller Amazon con Thunderbit (senza Python)

Dichiarazione trasparente: lavoro in Thunderbit, quindi prendi questa sezione nel giusto contesto. Detto questo, ho davvero testato tutti e quattro i metodi uno dopo l’altro, e la differenza nel time-to-data è stata impressionante.

è un AI web scraper che funziona come estensione Chrome. L’idea è semplice: invece di scrivere selettori CSS o codice Python, l’AI legge la pagina e capisce da sola quali dati estrarre. Per i Best Seller Amazon, Thunderbit ha template predefiniti che funzionano con un solo click.

Passo 1: installa l’estensione Chrome di Thunderbit

Vai al e clicca su “Aggiungi a Chrome”. Registrati per un account gratuito: il piano free ti dà abbastanza crediti per fare una prova.

Passo 2: apri la pagina Best Sellers di Amazon

Apri in Chrome una qualsiasi pagina categoria Best Sellers Amazon. Per esempio: https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/

Passo 3: clicca “AI Suggest Fields”

Apri la barra laterale di Thunderbit e clicca su “AI Suggest Fields”. L’AI analizza la struttura della pagina e suggerisce le colonne: Nome prodotto, Prezzo, Valutazione, URL immagine, Venditore, URL prodotto e Posizione. Nel mio test ha individuato correttamente tutti i campi rilevanti in circa 3 secondi.

amazon-thunderbit-product-data.webp

Puoi rinominare, rimuovere o aggiungere colonne. Puoi anche aggiungere prompt AI personalizzati per ogni campo — per esempio, “classifica come Electronics/Apparel/Home” per aggiungere un tag categoria a ogni prodotto.

Passo 4: clicca “Scrape”

Premi il pulsante “Scrape”. Thunderbit compila una tabella strutturata con tutti i dati prodotto presenti nella pagina. In modalità cloud, può processare fino a 50 pagine in parallelo, gestendo automaticamente lazy loading e paginazione.

Passo 5: esporta gratis

Clicca “Export” e scegli la destinazione: Excel, Google Sheets, Airtable o Notion. Le esportazioni sono gratuite in tutti i piani — nessun costo nascosto.

product-data-export.webp

L’intero processo mi ha richiesto circa 90 secondi dall’apertura della pagina al foglio di calcolo completo. Per confronto, il Metodo 1 ha richiesto circa 20 minuti (compreso il debugging del problema di lazy loading), il Metodo 2 circa 35 minuti (compresa la configurazione di Selenium) e il Metodo 3 circa 15 minuti (compresa la configurazione dell’account API).

Perché Thunderbit gestisce bene Amazon

Poiché l’AI legge la pagina da zero ogni volta, si adatta automaticamente ai cambi di layout — nessun selettore CSS da mantenere. Questo risponde direttamente alla lamentela più comune nei forum di scraping: “un web scraper base non basta, devi aggiungere troppi controlli per i cambi di elemento”. Quando Amazon modifica il DOM (e succede spesso), non devi aggiornare nulla.

La modalità cloud per lo scraping gestisce in modo trasparente rotazione dei proxy, rendering e misure anti-bot. Per chi vuole una soluzione che “funziona e basta”, si elimina tutto il mal di testa legato ai ban.

Il playbook anti-ban: come evitare di essere bloccati da Amazon

Il sistema anti-bot di Amazon è aggressivo. Durante i test il mio IP è stato temporaneamente bloccato, e gli utenti dei forum raccontano la stessa cosa: “errori ovunque, Amazon ha persino iniziato a reindirizzarmi alla homepage”. Se scegli la strada Python (Metodi 1–3), questa sezione è fondamentale.

Ecco una strategia a più livelli, dalla più semplice alla più avanzata:

1. Ruota le stringhe User-Agent

Inviare sempre lo stesso User-Agent è un campanello d’allarme. Usa il pool di 5+ stringhe dell’esempio del Metodo 1 e scegline una a caso per ogni richiesta:

1headers = {"User-Agent": random.choice(USER_AGENTS)}

2. Aggiungi ritardi casuali tra le richieste

I ritardi fissi sono riconoscibili (creano pattern). Quelli casuali sono più sicuri:

1time.sleep(random.uniform(2, 5))

Ho scoperto che 2–5 secondi tra una richiesta e l’altra mi tenevano sotto i radar per batch piccoli (meno di 50 richieste). Per esecuzioni più grandi, aumenta a 3–7 secondi.

3. Usa la rotazione dei proxy

Questo è il punto chiave. I mostrano che i proxy residenziali hanno in media circa il 94% di successo su Amazon contro il 59% dei proxy datacenter — un divario di 35 punti percentuali. Lo stack di rilevamento di Amazon include TLS fingerprinting, analisi comportamentale e rate limiting per IP, quindi gli IP standard da datacenter vengono segnalati in pochi secondi.

I proxy residenziali costano di più ($2–$12 per GB a seconda del provider) ma sono molto più affidabili. Ecco un esempio di codice:

1proxies = {
2    "http": "http://user:pass@residential-proxy.example.com:8080",
3    "https": "http://user:pass@residential-proxy.example.com:8080"
4}
5response = requests.get(url, headers=headers, proxies=proxies)

4. Rafforza il fingerprint del browser (Selenium)

1options.add_argument('--disable-blink-features=AutomationControlled')
2options.add_experimental_option("excludeSwitches", ["enable-automation"])
3options.add_experimental_option('useAutomationExtension', False)
4# Dopo l'inizializzazione del driver, rimuovi il flag navigator.webdriver
5driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
6    'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
7})

Mantenere i cookie tra le richieste rende il tuo scraper più simile a una sessione utente reale:

1session = requests.Session()
2# Visita prima la homepage per ottenere cookie realistici
3session.get("https://www.amazon.com", headers=headers)
4time.sleep(2)
5# Poi estrai la pagina target
6response = session.get(target_url, headers=headers)

6. Quando saltare tutto il problema

Per chi non vuole gestire niente di tutto questo, lo scraping cloud di Thunderbit gestisce in modo trasparente rotazione proxy, rendering e misure anti-bot. Anche le scraping API coprono gran parte di questi aspetti già di base. Per esperienza, il tempo speso a debuggare i problemi anti-ban supera spesso quello necessario per scrivere davvero il codice di scraping — quindi l’approccio “funziona e basta” ha un ROI concreto.

Arricchire le sottopagine: estrarre le pagine dettaglio prodotto per dati più ricchi

La pagina Best Sellers mostra solo le informazioni base: titolo, prezzo, rating, rank. Ma il vero valore per la ricerca FBA sta nelle pagine dettaglio dei singoli prodotti. Ecco cosa ti perdi se estrai solo la lista:

CampoPagina elencoPagina dettaglio prodotto
Nome prodotto
Prezzo
Valutazione
Rank BSR✅ (con rank per sottocategoria)
Brand
ASIN
Data di prima disponibilità
Dimensioni/Peso
Numero di venditori
Caratteristiche in bullet point
Proprietario del Buy Box

Il campo “Data di prima disponibilità” è particolarmente utile: ti dice da quanto tempo un prodotto è sul mercato, un segnale chiave per l’analisi competitiva. E sapere quanti venditori ci sono e chi possiede il Buy Box aiuta a capire se vale la pena entrare in una nicchia (se Amazon detiene oltre il 30% della quota Buy Box, competere diventa parecchio difficile).

Approccio Python: iterare sugli URL dei prodotti

Dopo aver raccolto gli URL dei prodotti dalla pagina elenco, scorri ciascuno con una pausa:

1for product in products:
2    time.sleep(random.uniform(3, 6))
3    detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
4    detail_soup = BeautifulSoup(detail_response.text, "html.parser")
5    # Estrai il brand
6    brand_tag = detail_soup.find("a", id="bylineInfo")
7    product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
8    # Estrai ASIN dal sorgente pagina o dall'URL
9    # Estrai la data di prima disponibilità dalla tabella dettagli prodotto
10    # ... altri campi ...

Attenzione: visitare 100 pagine prodotto singole aumenta parecchio il rischio di ban. Metti in conto rotazione proxy e pause più lunghe.

Approccio Thunderbit: scraping delle sottopagine con un click

Dopo aver estratto la pagina elenco in una tabella, clicca “Scrape Subpages” in Thunderbit. L’AI visita ogni URL prodotto e arricchisce la tabella con colonne aggiuntive — brand, ASIN, specifiche, caratteristiche — in automatico. Nessun codice aggiuntivo, nessun selettore, nessuna configurazione extra. È particolarmente utile per i team e-commerce che vogliono il quadro completo per decidere gli approvvigionamenti, ma non vogliono scrivere e mantenere un parser per le pagine dettaglio.

Automatizzare le estrazioni ricorrenti: monitorare i Best Seller nel tempo

Una singola estrazione è utile, ma il vero vantaggio competitivo arriva dal monitoraggio continuo. Seguire i prodotti che salgono e scendono, intercettare i trend in anticipo e monitorare i cambi di prezzo per settimane o mesi: è questo che separa una ricerca occasionale da una decisione guidata dai dati.

Approccio Python: pianificazione con Cron

Su Linux/Mac puoi programmare lo script Python con cron. Ecco la voce crontab per un’estrazione giornaliera alle 8:00:

10 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Per un’estrazione settimanale il lunedì alle 9:00:

10 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Su Windows puoi usare Utilità di pianificazione per ottenere lo stesso risultato. Se vuoi una pianificazione sempre attiva senza tenere il laptop acceso, puoi distribuire su un VPS o su AWS Lambda — ma questo aggiunge complessità infrastrutturale.

Aggiungi log e notifiche di errore per intercettare esecuzioni fallite. Non c’è niente di peggio che scoprire che lo scraper si è rotto in silenzio due settimane fa.

Approccio Thunderbit: Scheduled Scraper in linguaggio naturale

Lo Scheduled Scraper di Thunderbit ti permette di descrivere l’intervallo in linguaggio naturale — scrivi “ogni lunedì alle 9” oppure “ogni giorno alle 8” e l’AI interpreta la pianificazione. Le estrazioni girano sui server cloud di Thunderbit (non serve tenere acceso browser o computer) e i dati vengono esportati automaticamente su Google Sheets o Airtable. Così crei una dashboard di monitoraggio live senza gestire server — ideale per i team operations che vogliono visibilità continua senza l’overhead DevOps.

Aspetti legali ed etici nello scraping di Amazon

Non sono un avvocato e questo non è un parere legale. Ma ignorare il quadro normativo in un tutorial di scraping sarebbe irresponsabile — gli utenti dei forum sollevano esplicitamente dubbi sui ToS, e per una buona ragione.

robots.txt di Amazon: nel 2026, il robots.txt di Amazon contiene oltre 80 percorsi Disallow specifici, ma /gp/bestsellers/ NON è bloccato esplicitamente per gli user agent standard. Tuttavia, oltre 35 user agent dedicati all’AI (ClaudeBot, GPTBot, Scrapy, ecc.) ricevono un Disallow: / generale. L’assenza di un disallow specifico non significa che Amazon approvi lo scraping.

Termini di servizio di Amazon: le di Amazon (aggiornate a maggio 2025) vietano esplicitamente “l’uso di qualsiasi processo o tecnologia automatizzata per accedere, acquisire, copiare o monitorare qualsiasi parte del sito Amazon” senza autorizzazione scritta. Non è teoria: Amazon ha nel novembre 2025 per accesso automatizzato non autorizzato e ha ottenuto un’ingiunzione preliminare.

Il precedente hiQ v. LinkedIn: in (Nono Circuito, 2022), il tribunale ha stabilito che estrarre dati pubblicamente disponibili probabilmente non viola il Computer Fraud and Abuse Act. Ma hiQ alla fine ha raggiunto un accordo e ha smesso di fare scraping — vincere sul CFAA non ti protegge da azioni per violazione contrattuale.

Linee guida pratiche:

  • Estrarre solo dati pubblici (prezzi, BSR, titoli prodotto — non PII)
  • Rispettare i rate limit e non sovraccaricare i server
  • Usare i dati per attività legittime di competitive intelligence
  • Consultare il proprio legale prima di fare scraping su larga scala
  • Tenere presente che hanno ora leggi complete sulla privacy

Lo scraping cloud di Thunderbit usa pattern di richiesta simili a quelli di un browser standard, ma dovresti sempre verificare la conformità con il tuo consulente legale.

Quale metodo dovresti usare? Guida decisionale rapida

La versione breve:

  • “Sto imparando Python e voglio un progetto per il weekend.” → Metodo 1 (requests + BeautifulSoup). Imparerai tantissimo su richieste HTTP, parsing HTML e difese anti-bot di Amazon.
  • “Devo estrarre pagine pesanti in JavaScript o sessioni con login.” → Metodo 2 (Selenium). È più pesante ma gestisce contenuti dinamici.
  • “Sto eseguendo scraping in produzione su larga scala.” → Metodo 3 (Scraping API). Lascia che qualcun altro gestisca proxy e rendering. Il favorisce le API sotto le 500K richieste/mese.
  • “Non sono uno sviluppatore e voglio i dati in 2 minuti.” → Metodo 4 (). Nessun codice, nessun selettore, nessuna manutenzione.
  • “Mi serve un monitoraggio continuo senza gestire server.” → Thunderbit Scheduled Scraper. Lo imposti una volta e poi te ne dimentichi.

Conclusione e takeaway principali

Dopo un weekend di test, ecco cosa è rimasto davvero:

requests + BeautifulSoup è ottimo per imparare, ma il limite del lazy loading (solo ~30 dei 50 prodotti) e i selettori CSS fragili lo rendono poco pratico per la produzione.

Selenium risolve il problema del lazy loading e cattura tutti i 50 prodotti per pagina, ma è lento, consuma molta memoria ed è comunque rilevabile dalle difese anti-bot di Amazon.

Le scraping API offrono la migliore affidabilità per lo scraping in produzione — su Amazon — ma i costi crescono e devi comunque scrivere il codice di parsing.

Thunderbit ha offerto di gran lunga il time-to-data più rapido. L’AI gestisce cambi di layout, lazy loading, paginazione e misure anti-bot senza configurazioni. Per utenti non tecnici o team che hanno bisogno di dati ricorrenti senza overhead DevOps, è l’opzione più pratica.

La lezione più grande? Le difese anti-bot di Amazon e i frequenti cambi di layout fanno sì che, nel lungo periodo, le soluzioni senza manutenzione facciano risparmiare più tempo. Ogni ora passata a debuggare selettori rotti e ruotare proxy è un’ora in meno dedicata all’analisi vera.

Vuoi provare l’approccio no-code? Il ti dà abbastanza crediti per estrarre alcune categorie Best Seller e vedere i risultati con i tuoi occhi. Preferisci la strada Python? Gli esempi di codice sopra dovrebbero farti partire. In ogni caso, avrai i dati dei Best Seller Amazon in un foglio di calcolo invece che fissare una scheda del browser.

Per approfondire altri approcci allo scraping web, dai un’occhiata alle nostre guide su , e . Puoi anche guardare tutorial passo passo sul .

Scopri di più

Fawad Khan
Fawad Khan
Fawad writes for a living, and honestly, he kind of loves it. He's spent years figuring out what makes a line of copy stick — and what makes readers scroll past. Ask him about marketing, and he'll talk for hours. Ask him about carbonara, and he'll talk longer.
Indice

Prova Thunderbit

Estrai lead e altri dati in soli 2 clic. Potenziato dall’AI.

Scarica Thunderbit È gratis
Estrai dati con l’AI
Trasferisci facilmente i dati a Google Sheets, Airtable o Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week