Como criar um bot que avisa quando um produto baixa de preço

Publicado em: 23/04/2026
Tempo de leitura: 8 minutos

Você já passou pela frustração de comprar um eletrônico e, no dia seguinte, ver que o preço caiu drasticamente? Monitorar sites de e-commerce manualmente é uma tarefa cansativa e, muitas vezes, impossível de manter durante 24 horas por dia. Felizmente, com a programação, podemos automatizar esse processo. Neste guia, você aprenderá como criar um bot que avisa quando um produto baixa de preço utilizando Python, transformando seu computador em um assistente pessoal de compras incansável.

A automação de tarefas repetitivas é um dos maiores superpoderes que um desenvolvedor pode ter. Ao criar um monitor de preços, você não apenas economiza dinheiro, mas também pratica conceitos fundamentais como requisições HTTP, manipulação de dados e envio de notificações. Este projeto é uma excelente porta de entrada para quem está começando a aprender Python, pois une utilidade prática com um código relativamente simples e direto.

O que é Web Scraping e como ele ajuda a economizar?

O coração de um bot monitor de preços é a técnica chamada Web Scraping. Basicamente, o scraping consiste em fazer com que um script simule um acesso humano a um site, leia o conteúdo da página e extraia informações específicas, como o nome do produto e o valor atual. Em vez de você abrir o navegador e procurar o preço, o robô faz isso por você de forma programada.

Para o nosso projeto, utilizaremos o Python devido à sua vasta biblioteca de ferramentas voltadas para automação. Se você ainda não tem o ambiente configurado, é recomendável conferir o guia de instalação e configuração do VS Code no Windows para garantir que terá o editor de código pronto para trabalhar.

Ferramentas necessárias para o seu Bot

Para construir este projeto, precisaremos de algumas bibliotecas específicas que facilitam a comunicação com a web e a análise dos dados capturados. As principais são:

  • Requests: Responsável por realizar a requisição ao site do produto (baixar o HTML da página).
  • BeautifulSoup: Ferramenta que “entende” o HTML e permite buscar etiquetas específicas, como classes ou IDs que contêm o preço.
  • Smtplib: Uma biblioteca nativa do Python usada para enviar e-mails automaticamente quando o preço atingir o seu alvo.

Caso você receba mensagens de erro ao tentar importar essas ferramentas, pode ser necessário verificar se o seu interpretador está configurado corretamente ou se há problemas de instalação. Erros como o ModuleNotFoundError são comuns e fáceis de resolver seguindo as práticas recomendadas da comunidade.

Configurando o Ambiente de Desenvolvimento

1. Instalando as Bibliotecas

Abra o seu terminal e execute o comando para instalar a biblioteca Requests em Python e o BeautifulSoup. Use o gerenciador de pacotes pip:

Bash
pip install requests beautifulsoup4

2. Identificando os Elementos do Site

Antes de escrever o código, você precisa ir ao site do produto que deseja monitorar (por exemplo, Amazon ou Mercado Livre). Clique com o botão direito sobre o preço e selecione “Inspecionar”. Você deve anotar o ID ou a Classe HTML que envolve o valor numérico. Este “endereço” será usado pelo bot para localizar o dado correto.

Criando a Lógica de Captura de Dados

Nesta etapa, vamos focar em fazer o Python acessar o site e “ler” o preço. É importante configurar um User-Agent. Esse cabeçalho serve para dizer ao site que você é um navegador comum, e não um robô mal-intencionado, o que evita bloqueios imediatos.

Python
import requests
from bs4 import BeautifulSoup

def pegar_preco(url):
    headers = {"User-Agent": "Seu User Agent Aqui"}
    site = requests.get(url, headers=headers)
    soup = BeautifulSoup(site.content, 'html.parser')
    
    # Exemplo de seletor (isso muda de site para site)
    preco = soup.find(id="priceblock_ourprice").get_text()
    
    # Convertendo string de preço para número real (float)
    preco_numerico = float(preco.replace('R

Para lidar com a formatação monetária brasileira (que usa vírgulas), você precisará tratar as strings de texto. Aprender como usar f-strings para formatar números e moedas pode te ajudar a exibir o valor final de forma limpa no terminal durante os testes.

Configurando o Alerta de Preço Baixo

Agora que o bot sabe o preço, ele precisa decidir se deve ou não te avisar. Isso é feito através de uma estrutura condicional simples: se o preço coletado for menor que o seu preço desejado, o bot dispara uma ação. Para este tutorial, usaremos o envio de e-mail, mas você também pode optar por criar um bot para Telegram com Python para receber notificações no celular.

Python
import smtplib

def enviar_email(link):
    servidor = smtplib.SMTP('smtp.gmail.com', 587)
    servidor.ehlo()
    servidor.starttls()
    servidor.login('[email protected]', 'suasenha')
    
    assunto = 'O preco baixou!'
    corpo = f'Confira o link: {link}'
    msg = f'Subject: {assunto}\n\n{corpo}'
    
    servidor.sendmail('[email protected]', '[email protected]', msg)
    servidor.quit()

Atenção: Para usar o Gmail como remetente, você precisará gerar uma “Senha de App” nas configurações de segurança da sua conta Google, pois o Google bloqueia o login direto por scripts por motivos de segurança.

Automatizando a Frequência de Verificação

O bot não será útil se você tiver que rodá-lo manualmente o tempo todo. Precisamos que ele verifique o preço periodicamente (por exemplo, a cada 1 hora). Usaremos um loop enquanto (while) e o módulo time do Python para gerenciar esses intervalos de espera.

Python
import time

while True:
    preco_atual = pegar_preco(URL_DO_PRODUTO)
    if preco_atual <= 1500.00:
        enviar_email(URL_DO_PRODUTO)
        break # Para o bot após avisar
    
    time.sleep(3600) # Espera 60 minutos antes de olhar de novo

Ao lidar com loops contínuos, é vital garantir que seu código não consuma recursos excessivos da CPU. Estudar sobre dicas de otimização para Python pode ajudar a manter seu script leve e eficiente, mesmo rodando por dias seguidos.

Considerações Éticas e Legais

Ao criar scrapers, é fundamental seguir as diretrizes do arquivo robots.txt do site alvo. Este arquivo dita o que os bots podem ou não acessar. Evite fazer requisições em intervalos muito curtos (como a cada segundo), pois isso pode sobrecarregar o servidor da loja e resultar no banimento do seu endereço IP. O respeito à política de privacidade e aos termos de uso de grandes portais, como os listados na World Wide Web Consortium (W3C), garante que sua automação seja ética.

Para projetos mais robustos e profissionais, considere usar frameworks como o Scrapy, que possui ferramentas avançadas para gerenciar cookies, sessões e fluxos de dados mais complexos.

Código Completo do Projeto

Aqui está o código unificado e funcional para o seu bot monitor de preços. Lembre-se de substituir os placeholders (espaços entre aspas) pelas suas informações reais e ajustar os seletores HTML conforme o site que você deseja monitorar.

Python
import requests
from bs4 import BeautifulSoup
import smtplib
import time

# CONFIGURAÇÕES INICIAIS
URL_PRODUTO = "INSIRA_A_URL_DO_PRODUTO_AQUI"
PRECO_DESEJADO = 1200.00
MEU_EMAIL = "[email protected]"
SENHA_APP_EMAIL = "suasenhaespecifica" # Use Senha de App do Google
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

def verificar_preco():
    headers = {"User-Agent": USER_AGENT}
    try:
        resposta = requests.get(URL_PRODUTO, headers=headers)
        soup = BeautifulSoup(resposta.content, 'html.parser')
        
        # O seletor abaixo (class ou id) DEVE ser ajustado para cada site
        # Exemplo hipotético para uma loja:
        titulo = soup.find(id="productTitle").get_text().strip()
        preco_texto = soup.find(class_="a-offscreen").get_text()
        
        # Limpeza do dado para conversão numérica
        preco_limpo = preco_texto.replace('R

Perguntas Frequentes

O bot funciona em qualquer site de vendas?

A lógica de programação é a mesma, mas os “seletores” (IDs e Classes) mudam em cada site. Você precisará ajustar o código para cada loja diferente que quiser monitorar.

Por que o programa dá erro de conexão as vezes?

Sites grandes podem ter proteções contra robôs. Se o bot fizer muitas requisições rápidas, seu IP pode ser bloqueado temporariamente. Use intervalos de tempo razoáveis.

Posso ser banido de uma loja por usar esse bot?

Dificilmente você será banido como comprador, mas o bot pode parar de funcionar se o site identificar tráfego automatizado abusivo. Sempre use com moderação.

Como descubro o meu User-Agent?

Basta digitar “What is my user agent” no Google e ele mostrará a string exata que o seu navegador está usando no momento.

O bot precisa estar com o computador ligado?

Sim, o script só roda enquanto seu computador estiver ligado e conectado à internet. Para rodar 24h sem interrupção, você pode hospedar o script em uma nuvem (VPS) ou usar um Raspberry Pi.

Posso usar o bot para monitorar vários produtos ao mesmo tempo?

Sim! Você pode criar uma lista em Python com várias URLs e usar um loop for para percorrer cada uma delas dentro do while True.

É seguro colocar minha senha de e-mail no código?

Não é recomendado colocar senhas reais. Use “Senhas de App” e, para maior segurança, utilize variáveis de ambiente para esconder suas credenciais.

O site mudou o layout e o bot parou de funcionar. E agora?

Isso é comum no Web Scraping. Quando o site muda o design, os IDs e Classes HTML mudam. Você apenas precisa abrir o site, inspecionar o novo elemento e atualizar o seletor no seu código.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Automação e Scripts
    Foto do Leandro Hirt

    Como converter Python em código C com Cython: Guia de Velocidade

    Muitos desenvolvedores escolhem o Python por sua legibilidade e vasta biblioteca, mas eventualmente se deparam com um obstáculo comum: a

    Ler mais

    Tempo de leitura: 9 minutos
    22/04/2026
    Automação e Scripts
    Foto do Leandro Hirt

    Como criar um Web Scraper de notícias e enviar para o Telegram

    Você já sentiu a necessidade de acompanhar notícias de um site específico sem ter que abrir o navegador a cada

    Ler mais

    Tempo de leitura: 8 minutos
    16/04/2026
    Automação e Scripts
    Foto do Leandro Hirt

    Como integrar o ChatGPT ao seu código Python: Guia Prático

    A inteligência artificial transformou a maneira como desenvolvemos software, e aprender como integrar o ChatGPT ao seu código Python é

    Ler mais

    Tempo de leitura: 10 minutos
    15/04/2026
    Automação e Scripts
    Foto do Leandro Hirt

    Como organizar os arquivos do seu PC com Python em 5 minutos

    Você já sentiu aquela frustração de abrir a pasta de downloads e encontrar centenas de arquivos misturados? Documentos PDF perdidos

    Ler mais

    Tempo de leitura: 8 minutos
    14/04/2026
    Automação e Scripts
    Foto do Leandro Hirt

    Como gerar um executável Android .apk com Python

    Transformar um script escrito em Python em um aplicativo funcional para dispositivos móveis é um marco importante para qualquer desenvolvedor.

    Ler mais

    Tempo de leitura: 10 minutos
    04/04/2026
    Automação e Scripts
    Foto do Leandro Hirt

    Como Fazer o Seu Script Python Iniciar no Windows

    Aprender como fazer script Python iniciar no Windows é um passo fundamental para qualquer pessoa que deseja levar a sério

    Ler mais

    Tempo de leitura: 9 minutos
    29/03/2026