#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"