Proxies para monitoramento de preços
O monitoramento de preços da concorrência é uma parte importante da estratégia de e-commerce. Os proxies ajudam a coletar dados de preços sem bloqueios.
Por que o monitoramento de preços é necessário
- Precificação competitiva — mantenha os preços no nível do mercado
- Detecção de promoções — reaja aos descontos dos concorrentes
- Análise de tendências — entenda a dinâmica do mercado
- Conformidade com MAP — acompanhe o cumprimento do preço mínimo
Por que os proxies são necessários
Os sites de e-commerce se protegem ativamente contra parsing:
- Rate limiting
- CAPTCHA
- Bloqueio por IP
- Análise de comportamento
Arquitetura da solução
┌─────────────────┐ ┌──────────────┐ ┌─────────────┐
│ Your Server │────▶│ Proxy Pool │────▶│ Competitor │
│ (script/crawler)│ │ (Residential)│ │ Sites │
└─────────────────┘ └──────────────┘ └─────────────┘
│ │
└──────────── Price Data ◀─────────────────┘
Estratégia de coleta de dados
1. Escolha dos proxies
- Proxies residenciais para sites protegidos (Amazon, eBay)
- Proxies de datacenter para sites simples
- Geo-targeting para preços regionais
2. Rotação de IP
# Novo IP para cada produto
for product_url in products:
proxy = get_rotating_proxy()
price = scrape_price(product_url, proxy)
save_price(product_url, price)
3. Imitação de comportamento
import random
import time
# Atrasos aleatórios
time.sleep(random.uniform(2, 5))
# User-Agents diferentes
headers = {'User-Agent': random.choice(user_agents)}
Exemplo de código
import requests
from bs4 import BeautifulSoup
def get_price(url, proxy):
proxies = {
'http': f'http://user:pass@{proxy}',
'https': f'http://user:pass@{proxy}'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...'
}
response = requests.get(url, proxies=proxies, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# Exemplo da Amazon
price = soup.select_one('.a-price-whole')
return price.text if price else None
# Uso com rotação
from gproxy import ProxyPool
pool = ProxyPool(api_key='your_key')
for product in products:
proxy = pool.get_proxy(country='US')
price = get_price(product['url'], proxy)
print(f"{product['name']}: ${price}")
Recomendações
- Distribua a carga — no máximo 1 requisição por segundo por domínio
- Use cache — não faça parsing da mesma URL com frequência
- Monitore a qualidade — verifique a atualidade dos dados
- Respeite o robots.txt — ou esteja preparado para as consequências
- Armazene o histórico — para análise de tendências
Ferramentas
- Scrapy + proxy middleware
- Selenium para renderização de JS
- Playwright como alternativa
- Soluções prontas: Price2Spy, Prisync
