Foros del Web » Programando para Internet » Python »

bot de telegram no funciona (python/beautifulsoup)

Estas en el tema de bot de telegram no funciona (python/beautifulsoup) en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/03/2023, 23:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 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!

Etiquetas: bot
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:13.