2015-05-12 6 views
1

Я использую R для веб-соскабливания. Информация, которая мне нужна, находится в ссылках this webpage. Но когда я нажимаю, ссылка переходит на ту же страницу, на которой я был. Как я могу очистить информацию, следуя этим ссылкам, пока не получу таблицы с информацией, которая мне нужна? Я начал использовать R несколько месяцев назад, и я знаю httr, Curl и другие пакеты, но я не могу очистить эту веб-страницу. Мне нужен выход, как этот (через кнопку «Todo эль Territorio» и типо-де-эстудиос: «Bachillerato»):Скребок с ссылками на javascript

Provincia|Localidad|Denominacion Generica|Denominacion Especifica|Codigo|Naturaleza 
Almería|Adra|Instituto de Educación Secundaria|Abdera|04000110|Centro público 
Almería|Adra|Instituto de Educación Secundaria|Gaviota|04000134|Centro público 

...

Это будет мой общий сценарий с использованием пакета Selenium, но не работает, и я принимаю любую опцию:

library(RSelenium) 
library(XML) 
library(magrittr) 

RSelenium::checkForServer() 
RSelenium::startServer() 
remDrv <- RSelenium::remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "chrome") 
remDrv$open() 

remDrv$navigate('https://www.educacion.gob.es/centros/selectaut.do') 
remDrv$findElement(using = "xpath", "//select[@name = '.listado-inicio']/option[@value = ('02','00')]")$clickElement() 

... 

или что-то в этом роде. Я нашел нечто похожее на этот скрипт, ищущий другие темы в stackoverflow, но ничего не получаю. Я принимаю другие решения с другими сценариями. Большое спасибо.

+1

Не могли бы вы показать код, который вы использовали до сих пор? – ASCIIThenANSI

ответ

1

Использование «RSelenium» для навигации по сайту вы можете сделать:

library(RSelenium) 
library(rvest) 
#start RSelenium 
checkForServer() 
startServer() 
remDr <- remoteDriver() 
remDr$open() 

remDr$navigate('https://www.educacion.gob.es/centros/selectaut.do') 

#Click on the todo el territorio link 
remDr$findElement(using = "xpath", "//a[text()='Todo el territorio']")$clickElement() 

#select the Bachillerato option (has a value of 133) and click on the search button 
remDr$findElement(using = "xpath", "//select[@id='comboniv']/option[@value='133']")$clickElement() 
remDr$findElement(using = "xpath", "//input[@id='idGhost']")$clickElement() 

#Click on the show results button 
remDr$findElement(using = "xpath", "//input[@title='Buscar']")$clickElement() 

#parse the html and get the table 
doc <- htmlParse(remDr$getPageSource()[[1]],encoding="UTF-8") 
data <- readHTMLTable(doc)$matcentro 
+0

Он работает идеально! Большое спасибо. – user3774936

+0

Теперь я пытаюсь следить за ссылками, чтобы получить информацию на следующих страницах для каждой школы (Abdera, Gaviota ...) данных data.frame ... (Identificación, ubicación, Tipificación). И я не могу снова. Знаете ли вы простой способ получить это? Другой вопрос. Как вы узнали, что 133 - это номер для опции «Bachillerato»? Знаете ли вы какое-нибудь руководство для этих команд, используя «xpath» и т. Д.? Еще раз спасибо. – user3774936

Смежные вопросы