Todos os posts

Construindo um Monitor de Preços em Tempo Real com a FourA

Os preços dos concorrentes mudam a cada hora. Veja como construir um monitor de preços automatizado em centenas de páginas de produtos com uma única chamada de API e Python básico.

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.