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.

Necesito un ejemplo de cómo sacar información de este sitio.

Mi pregunta es un poco confusa, pero es porque realmente no sé cómo hacerla más clara en esta etapa..
Si obtengo una respuesta, la renombraré con más precisión.
Soy un principiante completo en el raspado y estoy aprendiendo cómo hacerlo.
Estoy tratando de raspar solo un valor de este sitio

Biblioteca (& quot;rvest & quot;)
url & lt;- & quot; https://www.fxblue.com/market-data/tools/sentiment & quot;
web & lt;- read_html (url)
nodos & lt;- html_nodes (web, & quot;. SentimentValueCaptionLong & quot;)

Obtén

Html_text (nodos)
carácter (0)

Mi próximo intento

Biblioteca (RSelenium)
rD & lt;- rsDriver (browser = & quot; cromo & quot ;, port = 0999L, verborrea = F, chromever = & quot; 95.0.4638.54 & quot;)
remDr & lt;- rD [[: & quot;cliente & quot;]]
remDr $ maxWindowSize ()
remDr $ navigate (& quot; https://www.fxblue.com/market-data/tools/sentiment & quot;)
html & lt;- remDr $ getPageSource () [[1]]
página & lt;- read_html (html)
nodos & lt;- html_nodes (página, & quot;. SentimentValueCaptionLong & quot;)

obtener el mismo

Html_text (nodos)
carácter (0)

¿Puede alguien mostrarme cómo hacerlo correctamente y explicar lo que hizo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para raspar un solo valor del sitio web dado, debe identificar el elemento HTML que contiene ese valor y extraer su texto. En este caso, el elemento en el que estamos interesados es el div con clase "SentimentValueLong".

    Así es como puede hacerlo usando rvest:

    `{r}
    biblioteca(rvest)
    url <- "https://www.fxblue.com/market-data/tools/sentiment"
    web <- read_html(url)
    nodo <- html_node(web, ".SentimentValueLong")
    valor <- html_text(nodo)
    valor
    `

    Explicación:

    • Primero, cargamos el paquete rvest y especificamos la URL que queremos raspar.
    • A continuación, leemos el contenido HTML de la página web utilizando read_html() y lo guardamos en el objeto web.
    • Luego, utilizamos la función html_node() para extraer el primer nodo HTML que coincide con el selector .SentimentValueLong.
    • Finalmente, utilizamos html_text() para extraer el contenido de texto del nodo div y lo guardamos en la variable valor.

    Si desea utilizar RSelenium para raspar el sitio web, puede seguir el mismo enfoque pero automatizar la navegación web utilizando un controlador web. Así es como:

    `{r}
    biblioteca(RSelenium)
    rD <- rsDriver(browser="chrome", verbose = FALSE)
    remDr <- rD[["client"]]
    remDr$maxWindowSize()
    remDr$navegar("https://www.fxblue.com/market-data/tools/sentiment")
    Sys.sleep(5) # Espere a que se cargue la página
    html <- remDr$getPageSource()[[1]]
    página <- read_html(html)
    nodo <- html_node(página, ".SentimentValueLong")
    valor <- html_text(nodo)
    valor
    `

    Explicación:

    • Primero, cargamos el paquete RSelenium y comenzamos un controlador de Chrome utilizando rsDriver().
    • Luego, navegamos a la URL utilizando el método remDr$navegar() y esperamos unos segundos a que la página se cargue completamente usando Sys.sleep().
    • A continuación, extraemos el contenido HTML de la página utilizando el método remDr$getPageSource() y lo guardamos en el objeto html.
    • Luego, leemos el contenido HTML utilizando read_html() y lo guardamos en el objeto página.
    • Utilizando la función html_node(), extraemos el primer nodo HTML que coincide con el selector .SentimentValueLong y lo guardamos en la variable nodo.
    • Finalmente, extraemos el contenido de texto del nodo div utilizando html_text() y lo guardamos en la variable valor.

Comments are closed.