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!