- Tecnologias Utilizadas
- Pré-requisitos
- Instalação e Configuração
- Executando o Script
- Configuração do GitHub Actions
- Resultado
- Contribuindo
- Playwright: Framework para automação de navegador, utilizado para realizar o scraping.
- python-telegram-bot: Biblioteca para interação com a API do Telegram e envio de mensagens.
- GitHub Actions: Ferramenta para automação de workflows, usada para agendar a execução diária do scraping.
- Python 3.7 ou superior
- Conta no Telegram e criação de um Bot
- Acesso ao repositório GitHub para configurar a automação
Para interagir com o Telegram Bot, siga os passos abaixo:
- Abra o Telegram e procure por @BotFather.
- Envie o comando
/newbot
para o BotFather. - Siga as instruções para criar o bot e obtenha o Token do Bot.
- Adicione o bot ao seu canal e obtenha o ID do Canal. Você pode usar o BotFather para encontrar o ID do canal.
Instale as dependências necessárias utilizando o pip
:
pip install -r requirements.txt
O Playwright requer que você instale os navegadores para o scraping. Execute o seguinte comando:
python -m playwright install
O arquivo .env será utilizado para armazenar as variáveis de ambiente, como o Token do Bot e o ID do Canal de forma segura.
Crie um arquivo chamado .env na raiz do seu projeto e adicione as seguintes variáveis:
TELEGRAM_TOKEN=SEU_TOKEN_AQUI
TELEGRAM_CHAT_ID=SEU_CHAT_ID_AQUI
Substitua SEU_TOKEN_AQUI pelo token do seu bot (obtido no passo 1) e SEU_CHAT_ID_AQUI pelo ID do seu canal.
Agora, você pode executar o script que irá realizar a busca dos produtos e enviar as informações para o Telegram.
Execute o seguinte comando:
python main.py
Ou, se preferir, você pode rodar o script de forma automatizada utilizando GitHub Actions, que pode ser configurado para rodar diariamente e enviar atualizações do preço para o Telegram.
O projeto está configurado para rodar automaticamente todos os dias às 01:00 (horário de Brasília). Para isso, foi criado um workflow utilizando GitHub Actions. O arquivo de configuração está localizado em .github/workflows/web-scraping.yml.
Se você deseja rodar o workflow manualmente ou de forma agendada, o cronograma está configurado para rodar todos os dias às 01:00:
on:
schedule:
- cron: '0 4 * 11 *' # Executa todos os dias às 04:00 UTC (01:00 Brasília) somente em novembro
workflow_dispatch: # Permite a execução manual também
Se você deseja apoiar este projeto, deixe um ⭐.
Feito com 💙 por Marco Antonio.