Я хотел бы импортировать данные в R из таблицы следующим образом:
http://www.rout.gr/index.php?name=Rout&file=results&year=2011
Я попытался использовать библиотеку XML, как было предложено ниже, но я ничего не смог получить.
Скремблирование html-таблиц в R-кадров данных с использованием пакета XML
Кажется, на этом сайте происходят какие-то смешные вещи. Кажется, что данные не возвращаются, если вы не подделываете пользовательский агент. Даже тогда readHTMLTable не слишком хорошо себя ведет, возвращая ошибку, если вы передадите ему весь doc
. После прочтения источника вы увидите, что соответствующая таблица имеет id table_results_r_1
и изолирует это и передает результат через работы:
library(XML)
library(httr)
theurl <- "http://www.rout.gr/index.php?name=Rout&file=results&year=2011"
doc <- htmlParse(GET(theurl, user_agent("Mozilla")))
results <- xpathSApply(doc, "//*/table[@id='table_results_r_1']")
results <- readHTMLTable(results[[1]])
rm(doc)
Теперь вам нужно будет убрать имена столбцов таблицы.
readHTMLTable
прямо в doc
, мне было бы интересно понять это!
В дополнение к моим комментариям
theurl <- "http://www.rout.gr/index.php?name=Rout&file=results&year=2011"
doc <- htmlParse(GET(theurl, user_agent("Mozilla")))
removeNodes(getNodeSet(doc,"//*/comment()"))
dum.tables<-readHTMLTable(doc)
поэтому комментарии между заголовками для 14-й таблицы вызывают проблемы. Мы можем удалить все html-комментарии, а затем эта функция будет работать со всеми таблицами на странице.