Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
- from selenium.webdriver.chrome.options import Options
- from webdriver_manager.chrome import ChromeDriverManager
- import requests
- import schedule
- import time
- from datetime import datetime
- # Función para verificar la conexión a Internet
- def check_internet_connection():
- try:
- requests.get("https://www.google.com", timeout=5)
- return True
- except requests.ConnectionError:
- return False
- # Función para obtener el número
- def get_number_from_website(url):
- while True:
- if check_internet_connection():
- try:
- print(f"Iniciando extracción del número para {url}...")
- options = Options()
- options.add_argument('--headless') # Ejecutar en segundo plano
- driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
- driver.get(url)
- # Usar el selector adecuado para el elemento que contiene el número
- number_element = driver.find_element(By.XPATH, '//*[@id="caja-resultado"]')
- number = number_element.text
- driver.quit()
- print(f"Número extraído: {number}")
- return number
- except Exception as e:
- print(f"Error extrayendo el número de {url}: {e}")
- return None
- else:
- print("No hay conexión a Internet. Reintentando cuando se restablezca...")
- time.sleep(10) # Esperar antes de reintentar
- # Función para enviar un mensaje a través de la API de Telegram
- def send_message_to_telegram(chat_id, token, message):
- url = f'https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}'
- response = requests.get(url)
- if response.status_code == 200:
- print(f"Mensaje enviado: {message}")
- else:
- print(f"Error al enviar mensaje: {response.status_code}")
- # Función para enviar el número por Telegram al grupo
- def send_telegram_message(chat_id, token, url, message):
- try:
- print(f"Iniciando envío de mensaje por Telegram para {url}...")
- number = get_number_from_website(url)
- if number:
- # Enviar el mensaje con el número extraído por Telegram al grupo
- send_message_to_telegram(chat_id, token, f"{message}: {number}")
- print(f"Mensaje enviado al grupo con el número {number}.")
- else:
- print(f"No se pudo extraer el número de {url}.")
- except Exception as e:
- print(f"Error enviando el mensaje por Telegram para {url}: {e}")
- # Función para programar tareas basadas en el día de la semana
- def schedule_tasks():
- # Reemplaza estos valores con tu token y chat_id de Telegram
- chat_id = '-1002190523360' # El chat_id del grupo
- token = '8065563525:AAGS6T78DKdBHv301eMtpoTvblzbVknM11o' # Token de tu bot
- today = datetime.now().strftime('%A') # Obtiene el día de la semana actual
- tasks = []
- # Tareas para el lunes
- if today == 'Monday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/cundinamarca', 'time': '22:45', 'message': 'Resultado Cundinamarca hoy'},
- {'url': 'https://www.astroluna.co/tolima', 'time': '22:45', 'message': 'Resultado Tolima hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:02', 'message': 'Resultado de Chontico de noche'}
- ])
- # Tareas para el martes
- if today == 'Tuesday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico dia de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/cruz-roja', 'time': '23:02', 'message': 'Resultado Cruz Roja'},
- {'url': 'https://www.astroluna.co/huila', 'time': '23:02', 'message': 'Resultado Huila'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '21:30', 'message': 'Resultado de Chontico de noche'}
- ])
- # Tareas para el miércoles
- if today == 'Wednesday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/valle', 'time': '23:22', 'message': 'Resultado Valle Hoy'},
- {'url': 'https://www.astroluna.co/manizales', 'time': '23:22', 'message': 'Resultado Manizales hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:10', 'message': 'Resultado de Chontico de noche'}
- ])
- # Tareas para el jueves
- if today == 'Thursday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/bogota', 'time': '23:15', 'message': 'Resultado Bogota hoy'},
- {'url': 'https://www.astroluna.co/quindio', 'time': '23:15', 'message': 'Resultado Quindio hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:03', 'message': 'Resultado de Chontico de noche'}
- ])
- # Tareas para el viernes
- if today == 'Friday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/medellin', 'time': '23:15', 'message': 'Resultado Medellin Hoy'},
- {'url': 'https://www.astroluna.co/risaralda', 'time': '23:15', 'message': 'Resultado Risaralda Hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:03', 'message': 'Resultado de Chontico de noche'}
- ])
- # Tareas para el sábado
- if today == 'Saturday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '17:33', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '16:45', 'message': 'Resultado de Chontico de noche'},
- {'url': 'https://www.astroluna.co/cauca', 'time': '23:15', 'message': 'Resultado Cauca hoy'},
- {'url': 'https://www.astroluna.co/boyaca', 'time': '16:46', 'message': 'Resultado Boyaca hoy'}
- ])
- # Tareas para el domingo
- if today == 'Sunday':
- tasks.extend([
- {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
- {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
- {'url': 'https://www.astroluna.co/chontico-noche', 'time': '20:11', 'message': 'Resultado de Chontico de noche'},
- {'url': 'https://www.astroluna.co/guaviare', 'time': '00:26', 'message': 'Resultado Guaviare hoy'},
- {'url': 'https://www.astroluna.co/santander', 'time': '23:00', 'message': 'Resultado Santander hoy'}
- ])
- # Programar las tareas
- for task in tasks:
- schedule.every().day.at(task['time']).do(
- send_telegram_message,
- chat_id=chat_id,
- token=token,
- url=task['url'],
- message=task['message']
- )
- # Iniciar la programación de tareas
- schedule_tasks()
- print("Script en ejecución. Esperando la hora programada...")
- while True:
- schedule.run_pending()
- time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement