Como Extrair Preços do Google Shopping: Ofertas, Vendedores, Dados Geográficos
O Google Shopping agrega preços de milhares de comerciantes em um só lugar. Veja como transformar seu vertical de compras em um feed de preços estruturado e ciente de geolocalização em que você pode confiar.
O Google Shopping é um dos maiores agregadores de preços na web: para um determinado produto, ele reúne ofertas ao vivo, preços e detalhes de vendedores de milhares de comerciantes em uma única visualização classificada. Isso o torna uma fonte de inteligência de preços exclusivamente eficiente - uma consulta revela o que dezenas de varejistas cobram no momento. Este guia cobre como extrair preços do Google Shopping de forma limpa, por que a geografia muda tudo e quando parar de improvisar um navegador e chamar uma API estruturada em vez disso.
O que o vertical de Compras realmente oferece
A aba Compras é o vertical tbm=shop do Google Search. Cada cartão de produto traz um título, um preço, o nome do comerciante/vendedor, uma classificação por estrelas e contagem de avaliações, e um identificador de produto que agrupa várias ofertas do mesmo item. Para trabalhos de preços, essa combinação de vendedor e preço é o ouro: você pode observar a distribuição entre varejistas para um SKU, identificar quem está subcotando quem e acompanhar o movimento de preços ao longo do tempo - o material bruto de um fluxo de trabalho de reajuste de preços ou monitoramento de MAP.
A estrutura da URL é simples. Os resultados são paginados dez por página via um deslocamento start, e o país de saída é definido com 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
Por que a localização decide a resposta
Os resultados de Compras são localizados. Os preços aparecem na moeda local, a mistura de comerciantes muda por mercado, a disponibilidade difere, e o parâmetro gl sozinho não é suficiente - o Google também considera a localização do IP solicitante. Solicite resultados alemães de um IP de datacenter dos EUA e você obterá uma resposta inconsistente, parcialmente dos EUA. Para ler o catálogo que um comprador em Berlim realmente vê, a solicitação deve sair de um IP residencial alemão. Um pool de proxies residenciais abrangendo mais de 200 países permite que você fixe a saída para cada mercado que você precifica. Esta é a mesma disciplina por trás do monitoramento de preços de concorrentes em escala.

A rota DIY (e seu custo)
Você pode extrair as páginas diretamente com um navegador sem cabeça. O Google Shopping é renderizado dinamicamente e bem defendido, então solicitações HTTP simples não são suficientes - você precisa de um motor de navegador real, um proxy em cada solicitação e código para dispensar a parede de consentimento de cookies (o notório button#L2AGLb "Aceitar tudo") antes que qualquer produto seja carregado. Depois, você enfrenta o CSS: os nomes das classes de contêiner do Shopping são ofuscados e rotativos, então seletores que funcionam hoje quebram em duas semanas. Adicione lógica de repetição (três tentativas com backoff aleatório é um piso sensato) e você tem um extrator funcional - e um trabalho de manutenção 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()
A rota da API: uma chamada, JSON estruturado
A alternativa é deixar uma SERP API gerenciar o navegador, os proxies e a análise, e entregar a você o vertical de compras como JSON. Você passa a consulta e um país; ela retorna ofertas com título, preço, vendedor, classificação e id do produto já extraídos. Sem barreiras de cookies, sem manutenção de seletores, geolocalização como parâmetro. Para um feed de preços que precisa continuar funcionando, essa troca geralmente é a certa - nossa análise de como a extração de SERP funciona em 2026 explica por que o caminho do HTML bruto continua ficando mais difícil.
# 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])

O que uma única oferta realmente contém
Vale a pena entender a forma de um cartão de produto antes de escalar um pipeline em torno dele. Além do preço principal, cada oferta traz o nome do comerciante, uma condição do item (novo, usado ou recondicionado), dicas de envio e impostos, uma classificação por estrelas com uma contagem de avaliações e um id de produto que o Google usa para agrupar todos os vendedores do mesmo item em uma única entrada. Esse id de produto é a chave de junção para tudo a jusante: agrupe ofertas por ele e você pode comparar de forma equivalente entre comerciantes, acompanhar o preço de um SKU ao longo do tempo e detectar o momento em que um novo vendedor entra em uma listagem ou um existente desaparece.
Dois campos merecem atenção especial para trabalhos de precificação. O nome do vendedor permite que você construa uma visão por comerciante - quem consistentemente subcota, quem ancora alto, quem só aparece em promoções - o que é muito mais acionável do que uma nuvem de preços anônima. A classificação dá um peso de confiança aproximado, para que você não trate um revendedor com uma avaliação como equivalente a um varejista estabelecido. Capture ambos junto com o preço e a moeda, e seu conjunto de dados responde a perguntas que um feed de preços simples nunca pode.
- product_id - a chave de cluster; desduplicar e unir todos os vendedores de um item nela.
- price + currency - a métrica, sempre emparelhada com o mercado de onde você a extraiu.
- seller / source - o comerciante, para visões competitivas por varejista.
- rating + reviews - um peso de confiança para que as comparações sejam justas.
- timestamp - marque cada captura para que história e deltas sejam possíveis.
Transformando ofertas em inteligência
Ofertas brutas não são inteligência - o loop é. Execute seu conjunto de consultas em um cronograma, armazene cada captura com um timestamp e compare com o histórico para destacar o que importa: um concorrente caindo abaixo do seu preço, um novo vendedor entrando em um SKU, uma falta de estoque que você pode explorar. Agrupe ofertas por id de produto para que os vendedores do mesmo item sejam comparados de forma equivalente, e execute todo o conjunto por mercado-alvo. Se você está construindo ferramentas em cima disso, nossa nota sobre escolhendo uma SERP API cobre as questões de formato JSON e custo por consulta que decidem a economia de unidade em volume.
Puxe dados do Google Shopping com a SERP API
Perguntas frequentes
Como faço para extrair o Google Shopping com Python?
Duas opções. Dirija um navegador sem cabeça (Playwright) através de um proxy residencial, dispense a parede de consentimento de cookies e analise os contêineres de produtos - flexível, mas de alta manutenção porque a marcação é ofuscada e muda. Ou chame o motor google_shopping de uma SERP API com sua consulta e um código de país e receba ofertas analisadas como JSON em uma única solicitação. O caminho da API é muito menos código para manter vivo.
Os dados do Google Shopping mudam por país?
Sim, substancialmente. Moeda, o conjunto de comerciantes, preços e disponibilidade variam por mercado. O parâmetro gl solicita um país, mas o Google também considera o IP solicitante, então resultados localizados precisos precisam de um IP de saída no país-alvo. Fixe a solicitação a um IP residencial por mercado que você precifica.
É legal extrair dados do Google Shopping?
Coletar preços e ofertas exibidos publicamente é uma prática comum para inteligência de preços, mas os termos da fonte e quaisquer regras de dados pessoais ainda se aplicam, e isso não é aconselhamento jurídico. Mantenha-se nos dados públicos de produtos, respeite os limites de taxa, e se você estiver em dúvida sobre um uso específico, procure aconselhamento. Não colete ou armazene informações pessoais que você não precisa.
Com que frequência devo extrair preços do Shopping?
Depende de quão rápido sua categoria se move. Eletrônicos de movimento rápido ou bens com bilhete podem justificar capturas horárias; categorias estáveis estão bem diariamente. Combine a cadência com a volatilidade de preços, marque cada captura para que você possa construir um histórico, e distribua as solicitações entre IPs e tempo para que você permaneça um visitante educado e de baixo risco.
O Google Shopping condensa o preço de todo um mercado em uma única superfície consultável. Quer você o renderize sozinho ou chame uma API para JSON estruturado, o padrão vencedor é o mesmo: geodirecione cada mercado, capture em um cronograma e compare com o histórico. Isso é um motor de inteligência de preços, não uma extração única.