O monitoramento de preços com geolocalização tornou-se uma necessidade para empresas de e-commerce, agências de pricing e equipes de inteligência competitiva que operam em múltiplos países. Preços de produtos variam conforme o país, a cidade e até o bairro do visitante — e plataformas como Amazon, Booking e Shopify ajustam dinamicamente o que cada IP vê. Sem proxies geo-segmentados, você coleta apenas o preço que o seu datacenter vê, não o preço real que um cliente local paga.
Este guia mostra como configurar um pipeline de monitoramento de preços com geolocalização usando proxies residenciais e móveis, com exemplos práticos em Python, Node.js e curl usando o gateway da ProxyHat.
Por que o monitoramento de preços com geolocalização é diferente do scraping comum
Quando você acessa uma loja online a partir de um IP de datacenter em Frankfurt, o servidor de pricing aplica regras baseadas na localização geográfica do seu IP. Isso significa que:
- Preços podem ser 20% a 40% mais altos ou mais baixos dependendo do país de origem do visitante.
- Produtos podem aparecer como esgotados em uma região mas disponíveis em outra.
- Promções locais, cupons regionais e condições de frete mudam por mercado.
- Catálogos inteiros podem diferir — o que é vendido no Brasil pode não aparecer para um IP dos EUA.
Esse comportamento é conhecido como discriminação de preços geográfica e é uma prática documentada e legal em muitos mercados. A Wikipedia descreve price discrimination como a estratégia de vender o mesmo produto a preços diferentes em segmentos distintos. No e-commerce moderno, o segmento é definido pelo IP do visitante.
Para capturar o preço real que um consumidor local vê, você precisa de um IP residencial naquele país — idealmente na mesma cidade. É aqui que o monitoramento de preços com geolocalização se diferencia do scraping genérico: o objetivo não é apenas extrair dados, mas extrair dados do ponto de vista geográfico correto.
Como as plataformas detectam sua localização
As lojas online usam várias camadas para determinar sua localização:
- Geolocalização por IP — a principal. Bancos de dados como MaxMind e IP2Location mapeiam IPs a países e cidades.
- Cabeçalhos HTTP — o
Accept-Languagerevela idioma preferido, reforçando a localização. - GPS e permissões do navegador — em sites móveis, a API de geolocalização pode ser solicitada.
- Cookies e contas logadas — sessões anteriores armazenam sua localização.
Para um pipeline de monitoramento automatizado, os dois primeiros são os mais relevantes. Um IP residencial brasileiro com cabeçalho Accept-Language: pt-BR é indistinguível de um consumidor real em São Paulo. Já um IP de datacenter alemão enviando Accept-Language: en-US é um sinal claro de bot.
A documentação da MDN sobre Accept-Language explica como esse cabeçalho funciona e por que navegadores o enviam automaticamente com base na configuração de idioma do sistema.
Tipos de proxy para monitoramento de preços: qual escolher?
Nem todo proxy serve para monitoramento de preços com geolocalização. A escolha do tipo de proxy impacta diretamente a taxa de sucesso, a latência e a credibilidade do seu IP aos olhos das plataformas de anti-bot.
| Tipo de proxy | Credibilidade | Latência típica | Custo | Ideal para |
|---|---|---|---|---|
| Residencial | Alta (IP de ISP real) | 200–800 ms | Médio-alto | Monitoramento de preços em produção |
| Móvel | Muito alta (IP de operadora) | 300–1200 ms | Alto | Plataformas com anti-bot agressivo |
| Datacenter | Baixa (faixa de datacenter conhecida) | 50–200 ms | Baixo | Testes rápidos, sites sem anti-bot |
Para monitoramento de preços com geolocalização, proxies residenciais são a escolha padrão. Eles oferecem o melhor equilíbrio entre credibilidade, cobertura geográfica e custo. Proxies móveis são recomendados quando você enfrenta CAPTCHAs persistentes ou bloqueios baseados em reputação de IP — por exemplo, em marketplaces com proteção PerimeterX ou DataDome.
Proxies datacenter podem funcionar para sites simples sem proteção anti-bot, mas são rapidamente detectados em plataformas maiores. Use-os apenas para validação inicial do pipeline.
Implementando monitoramento de preços com geolocalização na prática
Passo 1: Definir os mercados-alvo
Antes de escrever código, liste os países (e cidades, se necessário) que você quer monitorar. Por exemplo:
- Estados Unidos — Nova York, Los Angeles, Miami
- Brasil — São Paulo, Rio de Janeiro
- Reino Unido — Londres
- Alemanha — Berlim, Frankfurt
- Japão — Tóquio
Quanto mais granular o alvo, mais proxies você precisa. A ProxyHat oferece geo-segmentação por país e por cidade em dezenas de localidades. Verifique a cobertura antes de planejar seu pipeline.
Passo 2: Configurar o proxy com geo-targeting
Na ProxyHat, o geo-targeting é controlado pelo nome de usuário. Para acessar um site a partir de um IP dos EUA:
# curl com proxy residencial geo-segmentado (EUA)
curl -x http://user-country-US:suasenha@gate.proxyhat.com:8080 \
-H "Accept-Language: en-US,en;q=0.9" \
https://www.exemplo.com/produto/123
Para um IP no Brasil:
# curl com proxy residencial geo-segmentado (Brasil)
curl -x http://user-country-BR:suasenha@gate.proxyhat.com:8080 \
-H "Accept-Language: pt-BR,pt;q=0.9" \
https://www.exemplo.com/produto/123
Para segmentação por cidade:
# Proxy residencial em Berlim, Alemanha
curl -x http://user-country-DE-region-state_of_berlin-city-berlin:suasenha@gate.proxyhat.com:8080 \
-H "Accept-Language: de-DE,de;q=0.9" \
https://www.exemplo.com/produto/123
Passo 3: Coletar preços em Python
Um script básico de monitoramento multi-mercado em Python:
import requests
from bs4 import BeautifulSoup
import time
PROXY_GATEWAY = "gate.proxyhat.com"
PROXY_PORT = 8080
PROXY_USER = "seu_usuario"
PROXY_PASS = "sua_senha"
MARKETS = [
{"country": "US", "lang": "en-US,en;q=0.9", "label": "EUA"},
{"country": "BR", "lang": "pt-BR,pt;q=0.9", "label": "Brasil"},
{"country": "DE", "lang": "de-DE,de;q=0.9", "label": "Alemanha"},
{"country": "GB", "lang": "en-GB,en;q=0.9", "label": "Reino Unido"},
{"country": "JP", "lang": "ja-JP,ja;q=0.9", "label": "Japão"},
]
PRODUCT_URL = "https://www.exemplo.com/produto/123"
def fetch_price(market):
proxy_url = f"http://{PROXY_USER}-country-{market['country']}:{PROXY_PASS}@{PROXY_GATEWAY}:{PROXY_PORT}"
proxies = {"http": proxy_url, "https": proxy_url}
headers = {
"Accept-Language": market["lang"],
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
try:
resp = requests.get(PRODUCT_URL, proxies=proxies, headers=headers, timeout=30)
soup = BeautifulSoup(resp.text, "html.parser")
price_el = soup.select_one(".product-price")
if price_el:
return {"market": market["label"], "price": price_el.text.strip(), "status": resp.status_code}
return {"market": market["label"], "price": None, "status": resp.status_code}
except Exception as e:
return {"market": market["label"], "price": None, "error": str(e)}
results = []
for market in MARKETS:
result = fetch_price(market)
results.append(result)
print(result)
time.sleep(2) # respeitar limites entre requisições
print("\n--- Resumo de preços por mercado ---")
for r in results:
print(f"{r['market']}: {r.get('price', 'N/A')}")
Esse script percorre cinco mercados, cada um com um IP residencial local e um cabeçalho Accept-Language correspondente. O intervalo de 2 segundos entre requisições reduz o risco de rate limiting.
Passo 4: Coletar preços em Node.js
const axios = require('axios');
const cheerio = require('cheerio');
const PROXY_GATEWAY = 'gate.proxyhat.com';
const PROXY_PORT = 8080;
const PROXY_USER = 'seu_usuario';
const PROXY_PASS = 'sua_senha';
const markets = [
{ country: 'US', lang: 'en-US,en;q=0.9', label: 'EUA' },
{ country: 'BR', lang: 'pt-BR,pt;q=0.9', label: 'Brasil' },
{ country: 'DE', lang: 'de-DE,de;q=0.9', label: 'Alemanha' },
];
const productUrl = 'https://www.exemplo.com/produto/123';
async function fetchPrice(market) {
const proxyUrl = `http://${PROXY_USER}-country-${market.country}:${PROXY_PASS}@${PROXY_GATEWAY}:${PROXY_PORT}`;
try {
const resp = await axios.get(productUrl, {
proxy: { host: PROXY_GATEWAY, port: PROXY_PORT, auth: { username: `${PROXY_USER}-country-${market.country}`, password: PROXY_PASS } },
headers: { 'Accept-Language': market.lang, 'User-Agent': 'Mozilla/5.0' },
timeout: 30000,
});
const $ = cheerio.load(resp.data);
const price = $('.product-price').text().trim();
return { market: market.label, price, status: resp.status };
} catch (err) {
return { market: market.label, price: null, error: err.message };
}
}
(async () => {
for (const market of markets) {
const result = await fetchPrice(market);
console.log(result);
await new Promise(r => setTimeout(r, 2000));
}
})();
Passo 5: Usar sessões fixas para consistência
Em alguns casos, você quer que cada mercado use sempre o mesmo IP durante uma sessão de coleta — por exemplo, para acompanhar a evolução de preços ao longo de um dia sem variar o IP a cada requisição. Para isso, use o parâmetro session:
# Sessão fixa para o mercado brasileiro
curl -x http://user-country-BR-sid-monitor01:suasenha@gate.proxyhat.com:8080 \
-H "Accept-Language: pt-BR,pt;q=0.9" \
https://www.exemplo.com/produto/123
A string monitor01 é um identificador arbitrário. Enquanto a sessão estiver ativa, o mesmo IP será mantido. Isso é útil para sites que aplicam pricing dinâmico baseado em histórico de navegação.
Erros comuns e como evitá-los
1. Ignorar o cabeçalho Accept-Language
Mesmo com um IP brasileiro perfeito, se você enviar Accept-Language: en-US, algumas plataformas detectam a inconsistência e servem preços em dólares ou redirecionam para a versão internacional. Sempre alinhe o idioma do cabeçalho com o país do proxy.
2. Usar IPs de datacenter para mercados exigentes
Marketplaces como Amazon, Mercado Livre e Shopee têm sistemas anti-bot robustos que bloqueiam faixas de IP de datacenter conhecidas. Se você precisa monitorar essas plataformas, use proxies residenciais ou móveis desde o início. Testar com datacenter para economizar e depois migrar costuma gerar resultados inconsistentes.
3. Não respeitar rate limits
Disparar 100 requisições por segundo contra o mesmo site a partir de IPs diferentes ainda pode disparar alertas de comportamento anômalo. Mantenha uma taxa razoável — 1 a 5 requisições por segundo por domínio é um bom ponto de partida. Adicione delays aleatórios entre 1 e 3 segundos para simular comportamento humano.
4. Não validar se o preço retornado é o preço local
Alguns sites redirecionam silenciosamente para uma versão internacional quando detectam inconsistência. Verifique sempre a moeda exibida (BRL, USD, EUR) e o país de entrega indicado na página. Se o preço vier em uma moeda diferente da esperada, seu proxy não está funcionando como esperado.
5. Não tratar CAPTCHAs
Mesmo com proxies residenciais, alguns sites podem apresentar CAPTCHAs esporádicos. Implemente detecção de páginas de CAPTCHA (procurando por strings como captcha, cf-challenge ou px-captcha no HTML) e faça retry com um novo IP da mesma região. Para sites persistentemente protegidos, considere proxies móveis.
Configuração recomendada para produção
Para um pipeline de monitoramento de preços com geolocalização em produção, recomendamos:
- Tipo de proxy: Residencial para a maioria dos mercados; móvel para sites com anti-bot agressivo.
- Rotação: Sessões fixas por mercado durante cada ciclo de coleta; nova sessão a cada ciclo (por exemplo, a cada hora).
- Concorrência: 10 a 50 sessões simultâneas, dependendo do número de mercados e produtos.
- Timeout: 30 segundos por requisição.
- Retry: 3 tentativas com backoff exponencial (2s, 4s, 8s) em caso de falha.
- Armazenamento: Registre preço, moeda, timestamp, país do proxy e status HTTP para cada coleta.
Para estimar custos, consulte a página de preços da ProxyHat e calcule o volume mensal de requisições com base no número de produtos × mercados × frequência de coleta. Por exemplo, monitorar 500 produtos em 10 mercados a cada hora gera aproximadamente 120.000 requisições por dia.
Casos de uso reais
Repricing competitivo
Marketplaces sellers usam monitoramento de preços com geolocalização para ajustar seus próprios preços em tempo real. Se um concorrente baixa o preço no mercado brasileiro, você precisa saber em minutos, não em dias. Proxies residenciais garantem que você vê exatamente o que o cliente vê.
Verificação de MAP (Minimum Advertised Price)
Marcas que vendem através de distribuidores precisam verificar se os revendedores estão respeitando o preço mínimo anunciado em cada país. O monitoramento geo-segmentado permite auditar centenas de varejistas simultaneamente, por mercado.
Pesquisa de mercado e arbitragem
Equipes de expansão usam dados de preços por país para identificar oportunidades de arbitragem — produtos que podem ser comprados em um mercado e vendidos com margem em outro. O monitoramento contínuo revela tendências sazonais e diferenças estruturais de preço.
Para casos de uso adicionais de coleta de dados, consulte nosso guia sobre web scraping com proxies e rastreamento de SERP.
Considerações éticas e legais
O monitoramento de preços é uma prática amplamente aceita, mas há limites:
- Respeite o
robots.txtdo site alvo. Se um diretório estiver bloqueado, não o acesse. - Não colete dados pessoais de usuários — apenas informações públicas de produtos e preços.
- Verifique os Termos de Serviço do site. Alguns proíbem scraping automatizado explicitamente.
- Para dados de usuários na UE, esteja ciente do GDPR. Dados de preços públicos geralmente não são dados pessoais, mas evite coletar informações que possam identificar indivíduos.
- Mantenha uma taxa de requisições razoável para não impactar a performance do site alvo.
Próximos passos
Para começar com monitoramento de preços com geolocalização usando a ProxyHat:
- Crie uma conta em dashboard.proxyhat.com e escolha um plano residencial.
- Verifique a cobertura de países e cidades em nossa página de localizações.
- Teste o gateway com curl usando os exemplos acima.
- Adapte o script Python ou Node.js para seus produtos e mercados-alvo.
- Configure armazenamento (banco de dados ou planilha) e alertas de variação de preço.
Para detalhes técnicos completos do gateway, consulte a documentação oficial da ProxyHat.
Principais pontos
O monitoramento de preços com geolocalização exige proxies residenciais ou móveis com IPs locais para capturar preços reais por mercado.
Alinhe sempre o país do proxy com o cabeçalho Accept-Language para evitar detecção de inconsistência.
Use sessões fixas por mercado para consistência e rotacione entre ciclos de coleta.
Proxies datacenter não são confiáveis para plataformas com anti-bot robusto como Amazon e Mercado Livre.
Mantenha rate limits razoáveis (1–5 req/s por domínio) e implemente retry com backoff exponencial.





