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.

Estoy intentando scrape el ranking de universidades QS del mundo con Python.

Estoy tratando de obtener los nombres de las universidades, sus rangos y reputación académica del sitio web de QS Ranking. (dirección a continuación) Los datos de ‘reputación académica’ están en la pestaña ‘Indicadores de Clasificación’.

“https://www.topuniversities.com/university-rankings/world-university-rankings/2022”

En primer lugar, intenté obtener los nombres de las universidades con Python, pero no tuve éxito. Este código parece dar muchos datos de la etiqueta ‘a’, pero no pude obtener los nombres de las universidades con la clase “uni-link”.

¿Podría alguien ayudarme a mejorar mi código?

from bs4 import BeautifulSoup
import requests

url = "https://www.topuniversities.com/university-rankings/world-university-rankings/2022"
response = requests.get(url)

html = response.text
soup = BeautifulSoup(html, 'html.parser')

uni = soup.findAll('a', class_="uni-link")
for item in uni:
    print(item.text)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para extraer los nombres de las universidades, sus clasificaciones y reputación académica del sitio web de QS ranking, se pueden seguir los siguientes pasos:

    1. Obtener la URL del sitio web de QS ranking.
    2. Usar el módulo de requests para obtener el contenido HTML de la página web.
    3. Crear un objeto BeautifulSoup con el contenido HTML.
    4. Encontrar la tabla que contiene los datos que necesitamos. Esto se puede hacer buscando la tabla que tiene la clase “ranking-data-table”.
    5. Encontrar las filas de la tabla. Esto se puede hacer encontrando todas las etiquetas “tr” dentro de la tabla.
    6. Hacer un bucle a través de las filas de la tabla y extraer los datos que necesitamos de cada fila. El nombre de la universidad se puede encontrar dentro de la etiqueta “td” con la clase “uni-link”. La clasificación se puede encontrar dentro de la etiqueta “td” con la clase “rank”. La reputación académica se puede encontrar dentro de la etiqueta “td” con la clase “reputation”.

    Aquí está el código:

    from bs4 import BeautifulSoup
    import requests
    
    url = "https://www.topuniversities.com/university-rankings/world-university-rankings/2022"
    response = requests.get(url)
    
    soup = BeautifulSoup(response.text, "html.parser")
    
    table = soup.find("table", class_="ranking-data-table")
    rows = table.find_all("tr")
    
    for row in rows:
        cells = row.find_all("td")
        if len(cells) == 3:
            name = cells[0].find("a", class_="uni-link").text
            rank = cells[1].find("div", class_="rank").text
            reputation = cells[2].find("div", class_="reputation").text
            print(name, rank, reputation)
    

    Este código extraerá e imprimirá los nombres de las universidades, sus clasificaciones y reputaciones académicas para todas las universidades en el sitio web de QS ranking.

Comments are closed.