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 seleccionar una tabla en una página web con varias tablas de la misma clase usando BeautifulSoup.

Quiero obtener los datos de la tabla de “Ingresos trimestrales de Tesla” de “https://www.macrotrends.net/stocks/charts/TSLA/tesla/revenue”. Hay 2 tablas con la misma clase de tabla (table class=”historicaldatatable table”). Intenté obtener el índice de la tabla necesaria pero me da un error. Agradezco su ayuda para solucionar esto. Gracias.

url = “https://www.macrotrends.net/stocks/charts/TSLA/tesla/revenue”
data = requests.get(url).text
soup = BeautifulSoup(data,”html5lib”)
tables = soup.find(‘table’)
# encontrar tabla con “Ingresos trimestrales de Tesla”
for index,table in enumerate(tables):
if (“Ingresos trimestrales de Tesla” in str(table)):
table_index = index

print(tables[table_index].prettify())
Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede usar el método find_all para obtener la tabla con el título requerido. Puede usar el parámetro attrs para especificar la clase de la tabla que desea encontrar.

    url = "https://www.macrotrends.net/stocks/charts/TSLA/tesla/revenue"
    datos = requests.get(url).text 
    sopa = BeautifulSoup(datos, "html5lib")
    

    encontrar tabla con “Ingresos trimestrales de Tesla”

    tabla = sopa.find_all('table', attrs={'class': 'historical-data_table table'})[1]
    print(tabla.prettify())
    

Comments are closed.