Come estrarre i prezzi di Google Shopping: Offerte, Venditori, Dati Geografici
Google Shopping aggrega i prezzi di migliaia di commercianti in un unico luogo. Ecco come trasformare il suo verticale di shopping in un feed di prezzi strutturato e geo-consapevole di cui puoi fidarti.
Google Shopping è uno dei maggiori aggregatori di prezzi sul web: per un dato prodotto raccoglie offerte live, prezzi e dettagli dei venditori da migliaia di commercianti in una singola vista classificata. Questo lo rende una fonte di intelligenza sui prezzi unica ed efficiente: una query rivela ciò che decine di rivenditori stanno addebitando in questo momento. Questa guida copre come estrarre i prezzi di Google Shopping in modo pulito, perché la geografia cambia tutto e quando smettere di gestire manualmente un browser e utilizzare invece un API strutturato.
Cosa ti offre realmente il verticale Shopping
La scheda Shopping è il verticale tbm=shop di Google Search. Ogni scheda prodotto contiene un titolo, un prezzo, il nome del commerciante/venditore, un punteggio in stelle e il conteggio delle recensioni, e un identificatore del prodotto che raggruppa più offerte dello stesso articolo. Per il lavoro sui prezzi, quella combinazione venditore-prezzo è l'oro: puoi osservare la distribuzione tra i rivenditori per un SKU, scoprire chi sta sottocutando chi e monitorare il movimento dei prezzi nel tempo - la materia prima di un flusso di lavoro di riprezzamento o monitoraggio MAP.
La struttura dell'URL è semplice. I risultati si paginano dieci per pagina tramite un offset start, e il paese di uscita è impostato con gl:
# Google Shopping search URL, page 1, US results
https://www.google.com/search?q=wireless+earbuds&tbm=shop&gl=us
# Page 2 (results 11-20): add a start offset
https://www.google.com/search?q=wireless+earbuds&tbm=shop&gl=us&start=10
Perché la posizione decide la risposta
I risultati di Shopping sono localizzati. I prezzi vengono mostrati nella valuta locale, il mix di commercianti cambia a seconda del mercato, la disponibilità varia, e il solo parametro gl non è sufficiente - Google valuta anche la posizione dell'IP richiedente. Richiedi risultati tedeschi da un IP datacenter statunitense e otterrai una risposta incoerente, parzialmente statunitense. Per leggere il catalogo che un acquirente a Berlino vede effettivamente, la richiesta deve uscire da un IP residenziale tedesco. Un pool di proxy residenziali che copre oltre 200 paesi ti consente di fissare l'uscita su ogni mercato che valuti. Questa è la stessa disciplina dietro il monitoraggio dei prezzi dei concorrenti su larga scala.

Il percorso fai-da-te (e la sua tassa)
Puoi estrarre le pagine direttamente con un browser headless. Google Shopping è reso dinamicamente e ben difeso, quindi le semplici richieste HTTP non bastano - hai bisogno di un vero motore del browser, un proxy per ogni richiesta e codice per ignorare il muro del consenso ai cookie (il famigerato button#L2AGLb "Accetta tutto") prima che qualsiasi prodotto venga caricato. Poi devi combattere con il CSS: i nomi delle classi dei contenitori di Shopping sono offuscati e ruotano, quindi i selettori che funzionano oggi si rompono in due settimane. Aggiungi la logica di ripetizione (tre tentativi con backoff randomizzato è una base sensata) e hai un estrattore funzionante - e un lavoro di manutenzione permanente.
# Sketch of the DIY approach with Playwright + proxy
from playwright.sync_api import sync_playwright
PROXY = {"server": "http://gate.quantumproxies.io:8000",
"username": "USER", "password": "PASS"}
URL = "https://www.google.com/search?q=wireless+earbuds&tbm=shop&gl=us"
with sync_playwright() as pw:
browser = pw.chromium.launch(proxy=PROXY, headless=True)
page = browser.new_context(locale="en-US").new_page()
page.goto(URL, wait_until="networkidle", timeout=15000)
# dismiss the consent wall before products render
for sel in ("button#L2AGLb", "button:has-text('Accept all')"):
btn = page.locator(sel).first
if btn.is_visible():
btn.click(); break
# ...then wrestle the obfuscated product containers
browser.close()
Il percorso API: una chiamata, JSON strutturato
L'alternativa è lasciare che un SERP API gestisca il browser, i proxy e l'analisi, e ti consegni il verticale di shopping come JSON. Passi la query e un paese; restituisce offerte con titolo, prezzo, venditore, valutazione e id prodotto già estratti. Nessun muro di cookie, nessuna manutenzione dei selettori, geo come parametro. Per un feed di prezzi che deve continuare a funzionare, quel compromesso è di solito quello giusto - la nostra analisi di come funziona lo scraping SERP nel 2026 spiega perché il percorso HTML grezzo continua a diventare più difficile.
# One request to the SERP API's Google Shopping vertical
curl -G "https://api.quantumproxies.io/v1/serp" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "engine=google_shopping" \
--data-urlencode "q=wireless earbuds" \
--data-urlencode "gl=us"
import requests
def shopping_offers(query, country="us"):
r = requests.get(
"https://api.quantumproxies.io/v1/serp",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"engine": "google_shopping", "q": query, "gl": country},
timeout=30,
)
r.raise_for_status()
rows = []
for p in r.json().get("shopping_results", []):
rows.append({
"title": p.get("title"),
"price": p.get("price"),
"seller": p.get("source"), # merchant name
"rating": p.get("rating"),
"pid": p.get("product_id"),
})
return rows
for country in ("us", "gb", "de"):
print(country, shopping_offers("wireless earbuds", country)[:3])

Cosa contiene effettivamente una singola offerta
Conviene comprendere la forma di una scheda prodotto prima di scalare un pipeline attorno ad essa. Oltre al prezzo principale, ogni offerta contiene il nome del commerciante, una condizione dell'articolo (nuovo, usato o ricondizionato), suggerimenti su spedizione e tasse, un punteggio in stelle con un conteggio delle recensioni e un id prodotto che Google utilizza per raggruppare ogni venditore dello stesso articolo sotto un'unica voce. Quell'id prodotto è la chiave di unione per tutto ciò che segue: raggruppa le offerte per esso e puoi confrontare come-per-come tra i commercianti, seguire il prezzo di un SKU nel tempo e rilevare il momento in cui un nuovo venditore entra in un elenco o uno esistente scompare.
Due campi meritano un'attenzione speciale per il lavoro sui prezzi. Il nome del venditore ti consente di costruire una vista per commerciante - chi sottocuta costantemente, chi ancora in alto, chi appare solo in promozioni - che è molto più azionabile di una nuvola di prezzi anonima. La valutazione fornisce un peso di fiducia approssimativo, quindi non stai trattando un rivenditore con una sola recensione come equivalente a un rivenditore affermato. Cattura entrambi insieme al prezzo e alla valuta, e il tuo dataset risponde a domande che un semplice feed di prezzi non può mai fare.
- product_id - la chiave di cluster; deduplica e unisci ogni venditore di un articolo su di essa.
- price + currency - la metrica, sempre abbinata al mercato da cui l'hai estratta.
- seller / source - il commerciante, per viste competitive per rivenditore.
- rating + reviews - un peso di fiducia affinché i confronti siano equi.
- timestamp - timbra ogni acquisizione in modo che la cronologia e le variazioni siano possibili.
Trasformare le offerte in intelligenza
Le offerte grezze non sono intelligenza - il ciclo lo è. Esegui il tuo set di query su un programma, archivia ogni acquisizione con un timestamp e confronta con la cronologia per far emergere ciò che conta: un concorrente che scende sotto il tuo prezzo, un nuovo venditore che entra in un SKU, un esaurimento scorte che puoi sfruttare. Raggruppa le offerte per id prodotto in modo che i venditori dello stesso articolo siano confrontati come-per-come, ed esegui l'intero set per mercato target. Se stai costruendo strumenti su questo, la nostra nota su scegliere un SERP API copre le domande sulla forma JSON e sul costo per query che decidono l'economia unitaria su larga scala.
Ottieni dati di Google Shopping con il SERP API
Domande frequenti
Come faccio a estrarre Google Shopping con Python?
Due percorsi. Guida un browser headless (Playwright) attraverso un proxy residenziale, ignora il muro del consenso ai cookie e analizza i contenitori dei prodotti - flessibile ma ad alta manutenzione perché il markup è offuscato e cambia. Oppure chiama il motore google_shopping di un SERP API con la tua query e un codice paese e ricevi offerte analizzate come JSON in una sola richiesta. Il percorso API è molto meno codice da mantenere.
I dati di Google Shopping cambiano in base al paese?
Sì, sostanzialmente. Valuta, insieme di commercianti, prezzi e disponibilità variano tutti a seconda del mercato. Il parametro gl richiede un paese, ma Google valuta anche l'IP richiedente, quindi risultati localizzati accurati richiedono un IP di uscita nel paese target. Fissa la richiesta a un IP residenziale per mercato che valuti.
È legale estrarre Google Shopping?
Raccogliere prezzi e offerte visualizzati pubblicamente è una pratica comune per l'intelligenza sui prezzi, ma si applicano comunque i termini della fonte e le eventuali regole sui dati personali, e questo non è un consiglio legale. Attieniti ai dati pubblici dei prodotti, rispetta i limiti di velocità e se hai dubbi su un uso specifico, consulta un legale. Non raccogliere o archiviare informazioni personali di cui non hai bisogno.
Con quale frequenza dovrei estrarre i prezzi di Shopping?
Dipende da quanto velocemente si muove la tua categoria. Elettronica in rapido movimento o beni con biglietto potrebbero richiedere acquisizioni orarie; categorie stabili vanno bene giornalmente. Abbina la cadenza alla volatilità dei prezzi, timbra ogni acquisizione in modo da poter costruire una cronologia, e distribuisci le richieste su IP e tempo in modo da rimanere un visitatore educato e a basso rischio.
Google Shopping condensa il prezzo di un intero mercato in una superficie interrogabile. Che tu lo renda da solo o chiami un API per JSON strutturato, il modello vincente è lo stesso: geo-targetizza ogni mercato, acquisisci secondo un programma e confronta con la cronologia. Questo è un motore di intelligenza sui prezzi, non un'estrazione una tantum.