es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo trabajar con múltiples clases utilizando BeautifulSoup & BS4

Estoy tratando de escribir un raspador de YouTube y como parte de mi tarea necesito trabajar con varias clases en bs4.

El HTML se ve así:

<span id="video-title" class="style-scope ytd-playlist-panel-video-renderer"></span>

Mi objetivo es usar el atributo “class” para obtener todas las 50 canciones diferentes y trabajar con ellas.
Lo intenté de esta manera y no me devuelve nada:

soup_obj.find_all("span", {"class":"style-scope ytd-playlist-panel-video-renderer"})

También intenté como en Selenium (en lugar de espacios entre las clases, se utiliza el punto):

soup_obj.find_all("span", {"class":"style-scope.ytd-playlist-panel-video-renderer"})

¿Alguien tiene alguna idea al respecto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para extraer las 50 músicas diferentes del HTML dado utilizando el atributo de clase en bs4, puedes intentar lo siguiente:

    soup_obj.find_all("span", class_="style-scope ytd-playlist-panel-video-renderer")
    

    Aquí, usamos class_ en lugar de class porque class es una palabra reservada en Python. Pasamos los nombres de las clases como una sola cadena con un espacio entre ellas.

    Alternativamenta, también puedes intentar usar selectores CSS para lograr el mismo resultado:

    soup_obj.select("span.style-scope.ytd-playlist-panel-video-renderer")
    

    Esto selecciona todos los elementos span con ambas clases style-scope y ytd-playlist-panel-video-renderer.

    ¡Espero que esto te ayude!

Comments are closed.