Created
March 20, 2015 10:16
-
-
Save famuvie/73d753aa75dc097f8727 to your computer and use it in GitHub Desktop.
Script para extraer datos de GREC (UV)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Script de ejemplo para descargar datos de GREC (University of Valencia) | |
## Facundo Muñoz, 2015 | |
## Setup | |
# install.packages(rvest) | |
# install.packages('RSelenium') | |
library(rvest) | |
library('RSelenium') | |
checkForServer() | |
startServer() | |
# Abrimos un firefox, vamos a GREC y ponemos los datos de acceso | |
remDr <- remoteDriver(browserName = "firefox") | |
remDr$open() | |
remDr$navigate('https://webgrec.uv.es/cgi-bin/CU/UV_entrada.cgi') | |
# Obtener el código fuente de la página principal | |
main <- remDr$getPageSource() | |
# Buscamos el enlace para una de las categorías que nos interese recuperar | |
cat_text <- 'revistas' | |
remDr$findElements(using = 'xpath', value = cat_text) | |
webElem <- remDr$findElements(using = 'partial link text', value = 'revistas') | |
stopifnot( length(webElem) == 1 ) # me aseguro de encontrar un único resultado | |
webElem[[1]]$clickElement() # Hacemos click en la categoría | |
# Extraemos la información del primer elemento | |
# Los datos están ordenados en varias tablas de clase 'pcamps' | |
# Ahora, las tablas son una mierda muy difíciles de estandarizar | |
html_node(html(remDr$getPageSource()[[1]]), 'pcamps') | |
webElem <- remDr$findElements(using = 'class name', value = 'pcamps') | |
length(webElem) # número de tablas | |
current_table <- webElem[[1]] | |
current_table$findChildElements(using = 'class name', value = 'titcamp') | |
# La mayoría de los datos se encuentran en celdas a la derecha del nombre del campo | |
# pero algunas celdas contienen tablas con checkboxes, que habría que procesar separadamente | |
# para identificar cuál tiene el atributo de 'seleccionado' | |
# Cerrar todo | |
remDr$navigate('https://webgrec.uv.es/cgi-bin/CU/inici.cgi?G_USCODI=03551&G_ENTORN=&IDNC=201503200956130&ACABAR=S') | |
remDr$close() | |
remDr$closeServer() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment