Чтение данных с сайта php с помощью R

2

Я хотел бы импортировать данные в R из таблицы следующим образом:

http://www.rout.gr/index.php?name=Rout&file=results&year=2011

Я попытался использовать библиотеку XML, как было предложено ниже, но я ничего не смог получить.

Скремблирование html-таблиц в R-кадров данных с использованием пакета XML

  • 0
    Вы смотрели на RCurl?
  • 0
    Спасибо! Ваши предложения работают. Я начинаю понимать, как работают эти команды.
Теги:
web-scraping
import

2 ответа

4
Лучший ответ

Кажется, на этом сайте происходят какие-то смешные вещи. Кажется, что данные не возвращаются, если вы не подделываете пользовательский агент. Даже тогда 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)

Теперь вам нужно будет убрать имена столбцов таблицы.

  • 0
    Если кто-нибудь знает, почему ошибка возникает в результате попытки readHTMLTable прямо в doc , мне было бы интересно понять это!
2

В дополнение к моим комментариям

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-комментарии, а затем эта функция будет работать со всеми таблицами на странице.

  • 0
    Тайна разгадана!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню