скачать / очистить таблицу от htmlTable - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь загрузить CSV-файл с

https://oceanwatch.pifsc.noaa.gov/erddap/griddap/goes-poes-1d-ghrsst-RAN.html

или пытаюсь очистить фрейм данных вывода таблицы html с веб-сайта, найденного здесь

https://oceanwatch.pifsc.noaa.gov/erddap/griddap/goes-poes-1d-ghrsst-RAN.htmlTable?analysed_sst[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],analysis_error[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],mask[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],sea_ice_fraction[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)]

Я попытался очистить данные, используя

library(rvest)
url <- read_html("https://oceanwatch.pifsc.noaa.gov/erddap/griddap/goes- 
  poes-1d-ghrsst-RAN.htmlTable?analysed_sst[(2019-02-09T12:00:00Z):1:(2019- 
  02-09T12:00:00Z)][(-7):1:(42)][(179):1:(238)],analysis_error[(2019-02- 
  09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-7):1:(42)][(179):1: 
  (238)],mask[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-7):1:(42)] 
  [(179):1:(238)],sea_ice_fraction[(2019-02-09T12:00:00Z):1:(2019-02- 
  09T12:00:00Z)][(-7):1:(42)][(179):1:(238)]")

test <-  url %>%
  html_nodes(xpath='table.erd.commonBGColor.nowrap') %>%
  html_text()

И я попытался загрузить CSV с

download.file(url, destfile = "~/Documents/test.csv", mode = 'wb')

Нони то, ни другое не сработало.Функция download.file загрузила csv с описанием узла.и метод rvest дал мне огромную строку символов в моем macbook и нулевой фрейм данных в моих окнах.Я также пытался использовать selectorgadget (расширение chrome) для получения только тех данных, которые мне нужны, но selectorgadget не работает с htmlTable

1 Ответ

0 голосов
/ 11 февраля 2019

Мне удалось найти обходное решение с помощью пакета htmltab, но я не был уверен, насколько он оптимален, это большой фрейм данных для веб-страницы, для загрузки которого потребовалось некоторое время.Таблица [2] предназначена для фактической таблицы, так как в указанной вами ссылке есть 2 HTML-таблицы.

url1 <- "https://oceanwatch.pifsc.noaa.gov/erddap/griddap/goes-poes-1d-ghrsst-RAN.htmlTable?analysed_sst[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],analysis_error[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],mask[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)],sea_ice_fraction[(2019-02-09T12:00:00Z):1:(2019-02-09T12:00:00Z)][(-6.975):1:(42.025)][(179.025):1:(238.025)]"
tbls <- htmltab(url1,which = "//table[2]")
rdf <- as.data.frame(tbls)

, дайте мне знать, если это поможет.

...