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.

Aprendiendo el web scraping… necesito claridad sobre el xpath = “/html/body/div[3]/div[3]/div[4]/div/table[5] usando el plugin de XPath.

Estoy aprendiendo web scraping en R y entiendo el código HTML.. pero hay cierta confusión aquí…

CÓDIGO 1:

url <- “https://en.wikipedia.org/wiki/World_population”
ten_most_df <- read_html(url)

ten_most_populous <- ten_most_df %>%
html_table() %>%
.[[6]]

CÓDIGO 2:

url <- “https://en.wikipedia.org/wiki/World_population”
ten_most_df <- read_html(url)

ten_most_populous <- ten_most_df %>%
html_nodes(xpath=”/html/body/div[3]/div[3]/div[4]/div/table[5]”) %>%
html_table()

¿Los métodos utilizados en el código 1 y 2 son los mismos que en el código 1, donde estamos extrayendo el nodo 6, sin embargo el código 2 no me queda claro, ya que div[3] se repite dos veces. ¿Podría proporcionar más claridad al respecto? Sería de gran ayuda. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En el Código 1, la página web se lee en R utilizando la función read_html() del paquete rvest. Luego, se utiliza la función html_table() para extraer todas las tablas del código HTML. La sexta tabla (indexada como [[6]]) se selecciona y se guarda como ten_most_populous.

    En el Código 2, la misma página web se lee nuevamente en R utilizando read_html(). Sin embargo, esta vez, en lugar de extraer todas las tablas y luego seleccionar una, se utiliza la función html_nodes() para seleccionar directamente la quinta tabla utilizando su XPath. La tabla seleccionada luego se extrae utilizando html_table() y se guarda como ten_most_populous.

    En cuanto a la confusión sobre el XPath del Código 2, el doble div[3] se utiliza para navegar a través de la estructura del árbol HTML. El primer div[3] selecciona el tercer elemento <div> bajo el segundo elemento <div> bajo el primer elemento <body>. El segundo div[3] selecciona el cuarto elemento <div> bajo el elemento <div> seleccionado previamente. La quinta tabla se selecciona utilizando su posición dentro del elemento <div> seleccionado. Esta es solo una forma de navegar a través del árbol HTML utilizando XPath, y a menudo hay muchas formas de lograr el mismo resultado dependiendo de la estructura de la página web.

Comments are closed.