scraping selenium python

Descarga post de Instagram y envíalo por Telegram

by Mayra Salas

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

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.

Related Posts

Leave a Comment