16-03-2023, 02:50 AM
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-ico...110485.htm
El código que tengo es el siguiente, pero una vez publicado el link en telegram el bot no encuentra el link de descarga. Por lo que entiendo la clase o el atributo del enlace no es correcto.
Dejo el código:
Gracias de antemano por cualquier ayuda.
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-ico...110485.htm
El código que tengo es el siguiente, pero una vez publicado el link en telegram el bot no encuentra el link de descarga. Por lo que entiendo la clase o el atributo del enlace 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()
Gracias de antemano por cualquier ayuda.