As decisões de precificação no e-commerce acontecem rápido. Um concorrente reduz seu preço em 5% e, em poucas horas, os clientes percebem. As empresas que vencem são as que percebem primeiro.
Construir um sistema de monitoramento de preços costumava exigir a manutenção de infraestrutura de proxy, lidar com sistemas anti-bot e escrever scrapers personalizados para cada site de destino. A FourA reduz essa complexidade a uma única chamada de API.
O Problema
A verificação manual de preços não escala. Mesmo uma pequena empresa de e-commerce com 50 concorrentes precisa monitorar centenas de páginas de produtos. Com três verificações por dia, são mais de 1.000 requests diários, cada um potencialmente bloqueado, sob rate limit ou quebrado por uma reformulação do site.
A Abordagem
Veja como é um pipeline de monitoramento de preços pronto para produção com a FourA:
1. Defina Seu Catálogo de Produtos
Comece com uma lista estruturada de URLs de concorrentes e os seletores CSS onde os preços aparecem:
products = [
{"sku": "WDG-001", "competitor": "Store A", "url": "https://store-a.com/widget", "selector": ".price-current"},
{"sku": "WDG-001", "competitor": "Store B", "url": "https://store-b.com/products/widget", "selector": "[data-price]"},
]
2. Buscar e Analisar
A FourA cuida das partes difíceis: TLS fingerprinting, rotação de proxy e renderização de JavaScript. Seu código apenas envia uma URL e recebe o HTML de volta:
import requests
from bs4 import BeautifulSoup
def get_price(product):
resp = requests.post("https://eu.api.foura.ai/api/v1/tasks", headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}, json={"url": product["url"], "type": "proxy"})
html = resp.json()["content"]
soup = BeautifulSoup(html, "html.parser")
el = soup.select_one(product["selector"])
return float(el.text.strip().replace("$", "").replace(",", "")) if el else None
3. Acompanhar Mudanças ao Longo do Tempo
Armazene os resultados em um banco de dados ou CSV. Sinalize mudanças significativas para alertas:
if abs(new_price - last_price) / last_price > 0.03: # 3% threshold
send_alert(f"{product['competitor']} changed {product['sku']} from ${last_price} to ${new_price}")
4. Agendar com Cron
Execute o monitor a cada hora ou a cada poucas horas, dependendo da volatilidade de preços do seu mercado.
Por Que Isso Funciona
- Sem infraestrutura para manter. Sem servidores proxy, sem browser farms, sem lógica de rotação de IP.
- Adapta-se a mudanças de proteção. O tipo de proxy da FourA tenta novamente de forma automática através de rotas diferentes quando uma é bloqueada.
- Escala linearmente. Adicionar mais 100 produtos significa apenas mais 100 chamadas de API, sem necessidade de mudanças arquiteturais.
Primeiros Passos
Todo o pipeline acima (menos a lógica de alerta) roda em menos de 50 linhas de Python. E assim que estiver funcionando para 50 produtos, escalar para 500 é apenas uma questão de ter uma lista maior. A chamada de API continua a mesma, o parsing continua o mesmo e o agendamento continua o mesmo. Esse é o objetivo.
O código de exemplo completo está disponível no guia de Como Fazer, e a documentação da API cobre todos os parâmetros que você precisará para customizá-lo.