Si deseas realizar la descarga de los últimos post de tu artista favorito y enviarlos por Telegram, ya sea a un canal o grupo en especifico. Podrás realizarlo mediante el siguiente script en Python (solo funciona con cuenta de Instagram publicas)
Requisitos
- Contar con un bot en Telegram (https://t.me/BotFather)
- Sistema Linux (recomendado)
- Tener instalado Python y pip en su sistema
- Tener instalado ChromeDriver – WebDriver for Chrome – Downloads (chromium.org)
Primeros pasos
creamos un fichero script.py e ingresamos los siguientes valores:
# Importación de las bibliotecas necesarias
import asyncio
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
import telegram
# Creación del bot de Telegram
bot = telegram.Bot(token="YOU_TOKEN_BOT")
async def main():
# Inicialización del navegador y carga de la página de Instagram
driver = webdriver.Chrome(executable_path="/path/to/chromedriver")
driver.get("https://www.instagram.com/pokemongoappla/") #cambiar URL de preferencia
# Espera a que se cargue la página y se muestre el primer post
wait = WebDriverWait(driver, 5)
wait.until(presence_of_element_located((By.CSS_SELECTOR, "article img")))
# Búsqueda del último post de la página
post = driver.find_elements(By.CSS_SELECTOR, "article img")[-12]
# Envío del último post por Telegram
await bot.send_photo(chat_id="MI_ID_DE_TELEGRAM O GRUPO", photo=post.get_attribute("src"))
#await bot.send_message(chat_id="MI_ID_DE_TELEGRAM O GRUPO", text=description)
# Cierre del navegador
driver.close()
# Ejecución del bucle de eventos hasta que se complete la tarea asíncrona
asyncio.run(main())
No olvide que debe instalar las dependencias para evitar cualquier inconveniente :
pip install selenium
pip install telegram
pip install python-telegram-bot
Automatizando
Para ejecutar el script de forma automática, puede crear un cron con las siguientes variables, para ello, editamos el fichero crontab
crontab -e
e ingresamos los siguientes datos :
* * * * * export DISPLAY=:0 && export PATH=$PATH:/usr/local/bin && /usr/bin/python3 /home/username/Documents/Project/script.py
No olvide modificar los primeras parámetros (* * * * *) por la hora que desea ejecutar, puede generar de forma personalizada, ingresando a CroTabGuru
Validaciones
Luego de ejecutar el script, podrá recibir los últimos post de la cuenta Instagram que haya definido en su grupo o canal de Telegram.
