Este projeto é um bot automatizado que monitora sites de e-commerce em busca de promoções e as compartilha em um canal do Telegram, utilizando links de afiliado para monetização.
A ideia nasceu da vontade de automatizar o processo de encontrar e compartilhar ofertas de grandes varejistas como a Amazon. O bot utiliza técnicas de web scraping para extrair informações dos produtos em promoção e a API do Telegram para publicá-los em um canal, tornando o processo rápido, eficiente e autônomo.
- Web Scraping: Realiza a extração de dados (título, preço, imagem, link) da página de ofertas da Amazon.
- Postagem Automática: Publica as ofertas encontradas em um canal do Telegram, com imagem e texto formatado.
- Download de Imagens: Baixa a imagem do produto para enviá-la diretamente ao Telegram, evitando problemas com links protegidos (hotlinking).
- Links de Afiliado: Prepara a estrutura para transformar links de produtos em links de afiliado.
- Agendamento de Tarefas: Utiliza
node-cronpara verificar novas promoções em intervalos de tempo definidos (ex: a cada hora). - Configuração Segura: Utiliza variáveis de ambiente (
.env) para proteger informações sensíveis como o token do bot.
Este projeto foi construído com as seguintes tecnologias:
- Node.js: Ambiente de execução JavaScript no servidor.
- Puppeteer: Biblioteca para controlar um navegador (Chrome) e realizar o web scraping.
- Node-Telegram-Bot-API: Biblioteca para interagir com a API de Bots do Telegram.
- Axios: Cliente HTTP para fazer o download das imagens dos produtos.
- Dotenv: Módulo para carregar variáveis de ambiente de um arquivo
.env. - Node-Cron: Agendador de tarefas para executar o bot periodicamente.
Siga as instruções abaixo para configurar e rodar o projeto em seu ambiente local.
Você vai precisar ter instalado em sua máquina:
- Node.js (versão 18 ou superior)
- Git
- Um Bot e um Canal no Telegram.
- Uma conta de Afiliados da Amazon (opcional, para monetização).
- Clone o repositório para sua máquina local:
git clone [https://github.com/vicenteaugusto9/bot-de-promocoes.git](https://github.com/vicenteaugusto9/bot-de-promocoes.git)
- Navegue até a pasta do projeto:
cd bot-de-promocoes - Instale todas as dependências do projeto:
npm install
- Crie uma cópia do arquivo de exemplo de ambiente:
cp .env.example .env
- Abra o arquivo
.enve preencha com suas informações.
O arquivo .env centraliza todas as configurações e chaves necessárias para o bot funcionar.
# .env - Arquivo de configuração de ambiente
# Token do seu bot, obtido com o @BotFather no Telegram
TELEGRAM_TOKEN="SEU_TOKEN_SUPER_SECRETO_AQUI"
# ID ou @username do seu canal do Telegram
TELEGRAM_CHANNEL_ID="@seu_canal_ou_id"
# Sua tag de afiliado da Amazon (ex: suatag-20)
AMAZON_AFFILIATE_TAG="sua-tag-de-afiliado-20"
Para iniciar o bot, execute o seguinte comando no seu terminal:
node src/index.jsO bot fará uma primeira execução imediata e depois seguirá o agendamento definido no index.js (por padrão, a cada hora).
Este projeto está em constante evolução. Os próximos passos planejados são:
- Implementar scraping de uma página com preços mais consistentes.
- Corrigir bugs na captura de imagens.
- Adicionar scraping para o site do Mercado Livre.
- Criar filtros para ignorar produtos de certas categorias ou abaixo de um certo valor.
- Refatorar o código para permitir a busca em múltiplas lojas de forma modular.
- Fazer o deploy da aplicação em um servidor na nuvem (VPS ou PaaS).
Vicente Augusto - GitHub
