Элемент очистки веб-страницы отсутствует в html

#r #web-scraping #tidyverse #rvest #httr

#r #веб-очистка #tidyverse #rvest #httr

Вопрос:

У меня есть этот простой код очистки в R

 library(rvest)

url_blue <- "https://www.cronista.com/MercadosOnline/moneda.html?id=ARSB"

blue <- read_html(url_blue) %>% 
  html_nodes(xpath="//div[@class='col-venta']//span") %>% 
  html_text()

 

Результат: «VENTA:» «»

Первый элемент в порядке. Проблема во втором элементе.

На веб-странице элемент является this и имеет значение:

введите описание изображения здесь

Это очень странно, и я не могу найти решение в Интернете.Есть ли что-то, чего я не понял?

Большое вам спасибо! Спасибо!

Ответ №1:

Проверьте этот журнал XHR здесь вы можете найти URL-адрес этих данных

 url_blue <- "https://www.cronista.com/MercadosOnline/json/getValoresCalculadora.html"


blue <- read_html(url_blue) %>% html_text()
 

Теперь, я думаю, вы можете извлечь из этого полезные вещи. Счастливых праздников!!

Комментарии:

1. Эта ссылка представляет собой файл JSON, который необходимо jsonlite преобразовать в объект R, а не rvest::read_html() : df <- jsonlite::fromJSON("https://www.cronista.com/MercadosOnline/json/getValoresCalculadora.html")

Ответ №2:

Одним из возможных решений может быть использование Rselenium библиотеки.

Ниже приведено возможное решение:

 library(RSelenium)
driver <- rsDriver(browser=c("firefox"), port = 4449L)
remote_driver <- driver[["client"]]
remote_driver$navigate('https://www.cronista.com/MercadosOnline/moneda.html?id=ARSB')
compra<-remote_driver$findElement(using = 'css selector', value = ".col-compra")$getElementText()
print(compra)
[1] "COMPRA:n154,00"
venta<-remote_driver$findElement(using = 'css selector', value = ".col-venta")$getElementText()
print(venta)
[1] "VENTA:n159,00"