Usar rvest o httr para iniciar sesión en formularios no estándar en una página web
Estoy tratando de usar rvest para arañar una página web que requiere un inicio de sesión de correo electrónico / contraseña en un formulario.
rm(list=ls())
library(rvest)
### Trying to sign into a form using email/password
url <-"http://www.perfectgame.org/" ## page to spider
pgsession <-html_session(url) ## create session
pgform <-html_form(pgsession)[[1]] ## pull form from session
set_values(pgform, `ctl00$Header2$HeaderTop1$tbUsername` = "[email protected]")
set_values(pgform, `ctl00$Header2$HeaderTop1$tbPassword` = "mypassword")
submit_form(pgsession,pgform,submit=`ctl00$Header2$HeaderTop1$Button1`)
Esto me da el siguiente mensaje de error:
Error in submit_request(form, submit) :
objeto 'ctl00 $ Header2 $ HeaderTop1 $ Button1' no encontrado
Si envío el formulario sin especificar el parámetro de envío, obtengo esto:
Submitting with 'ctl00$Header2$HeaderTop1$Button1'
Error in function (type, msg, asError = TRUE) : <url> malformed
También intenté pasar los parámetros directamente a httr como se menciona en esta pregunta:¿Cómo puedo PUBLICAR un formulario HTML simple en R?, pero el parámetro "enviar" no aceptó el botón enviar con comillas hacia atrás (``), comillas o sin comillas:
library(httr)
url <- "http://www.perfectgame.org/Rankings/Players/Default.aspx?gyear=2015&num=500"
fd <- list(
submit = `ctl00$Header2$HeaderTop1$Button1`,
`ctl00$Header2$HeaderTop1$tbUsername` = "[email protected]",
`ctl00$Header2$HeaderTop1$tbPassword` = "mypassword")
resp<-POST(url, body=fd, encode="form")
content(resp)
¿Alguna idea de cómo puedo iniciar sesión desde una sesión R y arañar los datos que están detrás del muro de inicio de sesión?