Messi siempre nos alegra, y más aún cuando podemos meterlo en Python o en cualquier otro lado. El ejemplo es muy simple: queremos cargar en una tabla cuántos goles metió Messi en la selección. Y el código no podría ser más simple:
import requests from bs4 import BeautifulSoup import pandas as pd url = 'https://es.wikipedia.org/wiki/Anexo:Goles_internacionales_de_Lionel_Messi' response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.content, 'html.parser') tabla = soup.find('table', {'class': 'wikitable sortable'}) df = pd.read_html(str(tabla))[0] print(df.head()) else: print('Error al realizar la solicitud.')
Este código usa tres librerías, todas ellas ya incluídas en Anaconda: requests, para obtener data de un sitio web, BeautifulSoup, para poder jugar con el código generado, y pandas para armar el dataframe.
El código simplemente se fija por una tabla de las clases “wikitable sortable” existe, y toma todos los valores de ella. df tiene, entonces, todos los goles de Messi, y nos permite responder algunas preguntas simples.
La condición response_code == 200 implica que la página debe existir y no dar errores. Si no existe, el código devuelve un error.
Por ejemplo, si quisiéramos tener la cantidad total de goles de Messi, miraríamos la cantidad máxima del número de goles, corriendo esto:
print(df["N.º"].max())
Y cuántos le metió a Francia? Cuántos goles le metió Lionel Messi a Francia? Bueno, deberíamos filtrar el dataframe con solamente el Oponente “Francia”, y de allí, tomar la longitud del dataframe resultante. Esto lo responde.
print(len(df[df["Oponente"] == "Francia"]))
Ahora, me quiero guardar los goles en un archivo que pueda mirar en Excel. Y esto se hace muy fácilmente. Con el código de abajo, la tabla se guarda completa en la carpeta Python del disco C (si no existe, se puede crear).
df.to_excel("C:\\Python\\Messi.xlsx",index=False)
Ahora si, podés seguir jugando con Messi, usando dataframes de Python.
Suscribite a nuestro newsletter!
Si querés aprender Python desde cero, sumate ya mismo a nuestro curso gratuito, en este link. Hay cupos limitados!