Получить таблицу из одного фрейма HTML, используя Rcurl и XML

0

Как получить один стол, который обычно находится в поиске по адресу http://portal.inep.gov.br/basica-censo-escolar-matricula

Таблица находится внутри кадра.

Я должен выбрать состояние, которое владеет данными: например, ACRE и нажмите "consultar",

Как я могу это сделать?

Теги:
web-scraping
rcurl

2 ответа

2

Вы можете сделать это с помощью Selenium

require(RSelenium)
appURL <- "http://portal.inep.gov.br/basica-censo-escolar-matricula"
RSelenium::startServer()
remDr <- remoteDriver()
remDr$open()
remDr$navigate(appURL)

# find iframes
iframes <- remDr$findElements("css selector", "iframe")
iframes[[1]]$highlightElement() # visual check
remDr$switchToFrame(iframes[[1]])

# get Estado selections
webElems <- remDr$findElements("css selector", "#uf option")
estadoNames <- sapply(webElems, function(x){x$getElementText()[[1]]})
webElem <- webElems[[which(estadoNames == "ACRE")]]
webElem$clickElement()

# click the submit button
webElem <- remDr$findElement("id", "btnSubmit")
webElem$clickElement()

# find the table
webElem <- remDr$findElement("css selector",".Resultado")
webElem$highlightElement() # visual confirmation
tableHTML <- webElem$getElementAttribute("outerHTML")[[1]]

remDr$close()
remDr$closeServer()
0

Это определенно сложно.

Изображение 174551

Когда я нажимаю правой кнопкой мыши на разделе IFRAME и делаю элемент Inspect в Chrome, похоже, что он генерируется таким образом, что затрудняет программное получение.

Я мог бы извлечь таблицу, щелкнув правой кнопкой мыши по строке <html xmlns="http://…, выбрав" edit as html ", затем выполнив выделение, копирование и вставку в Sublime Text и сохранение в виде HTML файла (например,: http://rud.is/dl/22872999.html).

Вы можете сделать то же самое (немного проще IMO) в Firefox, щелкнув правой кнопкой мыши на таблице-кадре и сделав правый щелчок/просмотр-источник, а затем скопировав и вставив этот HTML-текст в текстовый редактор, такой как Sublime Text, и сохраните его HTML файл.

Вы должны иметь возможность работать с файлами, сохраненными таким образом, со стандартным кодом извлечения таблицы R/XML.

Это далеко не оптимальное решение, но оно работает. Я надеюсь, что у других будет более программный подход.

Ещё вопросы

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