Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2023, 23:19
imxa
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 9 meses
Puntos: 0
bot de telegram no funciona (python/beautifulsoup)

Hola a todos! Primero disculpas por si no es el foro o lugar correcto para publicar mi problema. Lo publico por si alguien experimentado puede darme una ayuda.

Estoy armando un bot de telegram donde el usuario publica un link del sitio web freepik y el bot le devuelve el archivo de descarga.

EJEMPLO DEL LINK DE FREEPIK:*https://www.freepik.com/free-psd/ufo-icon-isolated-3d-render-illustration_29110485.htm

Una vez publicado el link en telegram el bot no encuentra el link de descarga. Por lo que sospecho que la clase o el atributo del enlace de freepik no es correcto.

Dejo el código:

Código:
from telegram.ext import Updater, MessageHandler, Filters
import requests
from bs4 import BeautifulSoup

def freepik_link(update, context):
* * url = update.message.text
* * page = requests.get(url)
* * soup = BeautifulSoup(page.content, 'html.parser')
* * download_link = soup.find('a', {'class': 'download-btn'})
* * print(download_link)
* * if download_link:
* * * * print(download_link['href'])
* * * * update.message.reply_text(download_link['href'])
* * else:
* * * * update.message.reply_text("No se encontró el enlace de descarga.")

def start(update, context):
* * update.message.reply_text("¡Hola! Este bot puede obtener enlaces de descarga directa de Freepik. Solo envía un enlace de Freepik y te enviaré el enlace de descarga directa.")

def main():
* * updater = Updater(token='TOKEN(no lo pongo acá por seguridad)', use_context=True)
* * dp = updater.dispatcher
* * dp.add_handler(MessageHandler(Filters.regex(r'https?://(www\.)?freepik\.com/.*'), freepik_link))
* * dp.add_handler(MessageHandler(Filters.command, start))
* * updater.start_polling()
* * print("El bot se está ejecutando.")
* * updater.idle()

if __name__ == '__main__':
* * main()
Desde ya muchas gracias!