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 analizar una etiqueta HTML específica utilizando BeautifulSoup?

Estoy intentando hacer web scraping de este sitio web: https://datausa.io/profile/university/cuny-city-college/

Mi código solo recupera la primera etiqueta div con la clase “tuition”, pero solo quiero recuperar el costo de alojamiento y comida. ¿Cómo puedo analizar una etiqueta específica?

“`from bs4 import BeautifulSoup
import requests

url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
soup = BeautifulSoup(url.text, 'html.parser')

rb = soup.find('div', class_='stat-value')

print(rb.prettify)
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para recuperar el costo de Habitación y Alimentación específicamente, puedes utilizar el método find_all() para encontrar todas las etiquetas div con la clase “stat-title” y luego recorrerlas para encontrar la que tenga el texto “Room and Board”. Una vez que encuentres esa etiqueta específica, puedes utilizar su etiqueta hermana con la clase “stat-value” para extraer el costo.

    Aquí está el código actualizado:

    from bs4 import BeautifulSoup
    import requests
    
    url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
    soup = BeautifulSoup(url.text, 'html.parser')
    
    # encontrar todas las etiquetas div con la clase "stat-title"
    stat_titles = soup.find_all('div', class_='stat-title')
    
    # recorrer cada etiqueta stat_title para encontrar el título "Room and Board"
    for title in stat_titles:
        if title.text == "Room and Board":
            # una vez encontrado, encontrar la etiqueta hermana con la clase "stat-value" para extraer el costo
            rb = title.find_next_sibling('div', class_='stat-value').text
            print(rb)
    

    Esto debería mostrar el costo de Habitación y Alimentación del City College de CUNY.

Comments are closed.