Sto tentando di utilizzare rvest per raggrupare una pagina Web che richiede un accesso via email/password in un modulo.Utilizzo di rvest o httr per accedere a moduli non standard su una pagina Web
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`)
questo mi dà il seguente messaggio di errore:
Error in submit_request(form, submit) :
oggetto 'ctl00 $ Header2 $ HeaderTop1 $ Button1' non trovato
Se inviare il modulo senza specificare il parametro presentare, ho get this:
Submitting with 'ctl00$Header2$HeaderTop1$Button1'
Error in function (type, msg, asError = TRUE) : <url> malformed
Ho anche provato a passare i parametri direttamente ad httr come accennato in questa domanda: How can I POST a simple HTML form in R?, ma il parametro "invia" non ha accettato il pulsante di invio o con all'indietro virgolette (``), virgolette o senza virgolette:
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)
Tutte le idee per come posso il login da una sessione R e spider i dati che si trovano dietro il muro di login?
Ciao, grazie mille per la tua risposta - dalla tua soluzione, capisco ora che devi salvare il modulo riempito come un oggetto in R piuttosto che semplicemente passarlo alla sessione. Tuttavia, non riesco a replicare il tuo codice di stato 200 - Eseguo il codice sopra e ottengo lo stesso errore elencato sopra "" Invio con 'ctl00 $ Header2 $ HeaderTop1 $ Button1' Errore nella funzione (tipo, msg, asError = TRUE): malformato "' Qualche idea di quale potrebbe essere la differenza? –
gbostock
EDIT: ho caricato la versione più recente di R (3.1.3) e ho ricevuto lo stesso messaggio. Grazie! Darò un'occhiata e riferirò. – gbostock
Questo ha funzionato perfettamente. Grazie ancora! – gbostock