Aprenda Python: Criando um Monitor de Preços Automático

POR CÓDIGO DA HORA • 12 MARÇO 2026

O Desafio do Monitoramento de Dados em Tempo Real

No e-commerce moderno, os preços flutuam rapidamente devido a algoritmos de precificação dinâmica. Para um desenvolvedor ou comprador estratégico, verificar manualmente cada item é inviável. Com Python, podemos automatizar o Web Scraping para capturar esses valores e disparar alertas.

Neste tutorial, utilizaremos um cenário real: vamos realizar o scraping de uma página de produto hospedada diretamente no GitHub, simulando a estrutura de um grande marketplace.

Caminho do Ambiente de Teste

Para este aprendizado, utilizaremos o HTML que você publicou em seu repositório. Isso garante que o seletor CSS seja sempre constante:

Ver Repositório de Teste

🛠️ O Código do Monitor de Preços

O script abaixo utiliza a biblioteca requests para baixar o código-fonte da página e o BeautifulSoup para interpretar as tags HTML, para instalar utilize o comando pip install bs4. Note que usamos a URL RAW do GitHub para obter apenas o código limpo.


import requests
from bs4 import BeautifulSoup
import time

# URL RAW do GitHub (entrega o HTML puro para o Python)
URL = "https://raw.githubusercontent.com/codigodahr/produto-teste/main/produto_teste.html"
PRECO_ALVO = 1400.00
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}

def verificar_preco():
    try:
        # Fazendo a requisição
        resposta = requests.get(URL, headers=HEADERS)
        soup = BeautifulSoup(resposta.text, 'html.parser')

        # Localizando o preço pela classe definida no seu HTML
        preco_bruto = soup.find("span", class_="a-offscreen").get_text()
        
        # Tratamento de string: R$ 1.450,00 -> 1450.00
        preco_limpo = float(preco_bruto.replace("R$", "").replace(".", "").replace(",", ".").strip())

        print(f"[{time.strftime('%H:%M:%S')}] Preço atual: R$ {preco_limpo}")

        if preco_limpo <= PRECO_ALVO:
            print("🔥 ALERTA: O preço atingiu sua meta! Hora de comprar.")
        else:
            print("⏳ Monitorando... o preço ainda está acima da meta.")

    except Exception as e:
        print(f"Erro na captura: {e}")

# Executa a verificação a cada 30 segundos
if __name__ == "__main__":
    while True:
        verificar_preco()
        time.sleep(30)

Por que este método é eficiente?

Ao utilizar o link raw.githubusercontent.com, eliminamos toda a interface do GitHub (menus, barras laterais e botões), recebendo apenas o código que você escreveu. Isso torna o script mais rápido e menos propenso a erros de extração.

💼 Diferencial no Mercado de Trabalho

Saber realizar o parsing de dados financeiros e tratá-los (convertendo strings para float) é o primeiro passo para se tornar um engenheiro de dados ou especialista em RPA. Esta técnica pode ser expandida para monitorar ações, criptomoedas ou disponibilidade de estoques em qualquer portal do mundo.