Criar alerta no telegram com Python
- Amanda Nascimento
- 27 de mai.
- 3 min de leitura
Atualizado: 29 de mai.
Etapa 1 – Criar o bot no Telegram
Acesse @BotFather no Telegram. (https://t.me/botfather)
Envie o comando /newbot.
Dê um nome e um nome de usuário (tem que terminar em bot).
O BotFather vai te dar um Token do bot (guarde)
Etapa 2 – Obter o seu chat ID
Envie uma mensagem qualquer para o seu novo bot.
Acesse este link no navegador (substitua TOKEN_DO_BOT):
Veja abaixo que na minha primeira tentativa não apareceu nada..
Envie novamente mais uma mensagem para o seu boot e atualize a página ate aparecer o id
precisaremos deste id pois (é para ele que o bot enviará as notificações)
Procure algo assim no retorno:
json
CopiarEditar
"chat":{"id":123456789,...
Anote esse número — é o seu chat ID.
Etapa 3 – Criar o projeto no Replit
Vá para https://replit.com
Clique em "Create Repl"
Escolha Python
Nomeie como quiser (ex: sqlsaturday-checker)
Etapa 4 – Cole seu código no main.py
No meu script, criei um alerta para ser avisada no telegram quando surgir um evento que quero ir, em determinadas cidades.
TOKEN = "SEU_TOKEN_DO_BOT" CHAT_ID = "SEU_CHAT_ID"
import requests
from bs4 import BeautifulSoup
import unicodedata
import time
# Token e chat_id do seu bot
TOKEN = "seu token aqui"
CHAT_ID = "seu id aqui"
# Função para remover acentos
def remover_acentos(texto):
return ''.join(
letra for letra in unicodedata.normalize('NFD', texto)
if unicodedata.category(letra) != 'Mn'
)
# Função para enviar mensagem via Telegram
def enviar_mensagem(mensagem):
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
payload = {
"chat_id": CHAT_ID,
"text": mensagem
}
try:
response = requests.post(url, data=payload)
if response.status_code != 200:
print("Erro ao enviar mensagem:", response.text)
except Exception as e:
print("Erro na requisição do Telegram:", e)
# Função principal
def verificar_cidades_sqlsaturday():
url = "https://sqlsaturday.com/#reserved"
try:
response = requests.get(url)
response.raise_for_status()
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
texto_pagina = soup.get_text().lower()
texto_pagina_sem_acentos = remover_acentos(texto_pagina)
cidades = ["belo horizonte", "são paulo"]
cidades_sem_acentos = [remover_acentos(cidade.lower()) for cidade in cidades]
encontrados = [cidade for cidade, cidade_sem_acentos in zip(cidades, cidades_sem_acentos)
if cidade_sem_acentos in texto_pagina_sem_acentos]
if encontrados:
mensagem = "✅ Cidades encontradas na página SQL Saturday:\n" + "\n".join(f" - {cidade.title()}" for cidade in encontrados)
print(mensagem)
enviar_mensagem(mensagem)
else:
print("❌ Nenhuma das cidades encontradas na página.")
except requests.exceptions.RequestException as e:
print("Erro ao acessar a página:", e)
verificar_cidades_sqlsaturday()
Etapa 5 – Executar o script

Clique no botão "Run" no topo do Replit. Se tudo estiver certo, você vai receber uma mensagem no Telegram de acordo com o print do seu código.
Na guia console, você poderá conferir o resultado também.

pyproject.toml
Etapa 6 – Automatizar com UptimeRobot
Se quiser que o script rode de tempo em tempo (ex: a cada 5 minutos):
Crie uma conta gratuita em https://uptimerobot.com

No Replit, crie um servidor Flask básico para manter o projeto “acordado”.
por fim, coloquei no script abaixo para atualizar sempre as 8 da manha e me enviar o retorno do script no telegram
import requests
from bs4 import BeautifulSoup
import unicodedata
from datetime import datetime
# Token e chat_id do seu bot
TOKEN = "seu token"
CHAT_ID = "seu id"
# Função para remover acentos
def remover_acentos(texto):
return ''.join(
letra for letra in unicodedata.normalize('NFD', texto)
if unicodedata.category(letra) != 'Mn'
)
# Função para enviar mensagem via Telegram
def enviar_mensagem(mensagem):
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
payload = {
"chat_id": CHAT_ID,
"text": mensagem
}
try:
response = requests.post(url, data=payload)
if response.status_code != 200:
print("Erro ao enviar mensagem:", response.text)
except Exception as e:
print("Erro na requisição do Telegram:", e)
# Função principal
def verificar_cidades_sqlsaturday():
url = "https://sqlsaturday.com/#reserved"
try:
response = requests.get(url)
response.raise_for_status()
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
texto_pagina = soup.get_text().lower()
texto_pagina_sem_acentos = remover_acentos(texto_pagina)
cidades = ["belo horizonte", "são paulo", "boston", "flórida"]
cidades_sem_acentos = [remover_acentos(cidade.lower()) for cidade in cidades]
encontrados = [cidade for cidade, cidade_sem_acentos in zip(cidades, cidades_sem_acentos)
if cidade_sem_acentos in texto_pagina_sem_acentos]
if encontrados:
mensagem = "✅ Cidades encontradas na página SQL Saturday:\n" + "\n".join(f" - {cidade.title()}" for cidade in encontrados)
print(mensagem)
enviar_mensagem(mensagem)
else:
print("❌ Nenhuma das cidades encontradas na página.")
except requests.exceptions.RequestException as e:
print("Erro ao acessar a página:", e)
# Define a hora que o script deve rodar (formato 24h)
HORA_EXECUCAO = 8 # 08:00 da manhã
# Verifica se está na hora certa para rodar
agora = datetime.now()
if agora.hour == HORA_EXECUCAO:
verificar_cidades_sqlsaturday()
else:
print(f"⏳ Ainda não é hora de rodar o bot. Hora atual: {agora.hour}:00")
