2017-07-28 1 views
8

J'essaie de me connecter avec mes informations d'identification à un site .NET mais je n'arrive pas à le faire fonctionner. Mon code est inspiré du fil ci-dessousConnectez-vous au site .NET en utilisant R

How to login and then download a file from aspx web pages with R

library(RCurl) 
curl = getCurlHandle() 
curlSetOpt(cookiejar = 'cookies.txt', followlocation = TRUE, autoreferer = TRUE, curl = curl) 
html <- getURL('http://www.aceanalyser.com/Login.aspx', curl = curl) 
viewstate <- as.character(sub('.*id="__VIEWSTATE" value="([0-9a-zA-Z+/=]*).*', '\\1', html)) 
viewstategenerator <- as.character(sub('.*id="__VIEWSTATEGENERATOR" value="([0-9a-zA-Z+/=]*).*', '\\1', html)) 

params <- list(
    'txtUserID' = '********', 
    'txtPwd' = '*******', 
    'Btn_Login' = 'GO', 
    '__VIEWSTATE' = viewstate, 
    '__VIEWSTATEGENERATOR' = viewstategenerator, 
    'HiddenField1' = '1280', 
    'HiddenField2' = '700', 
    'Hdn_Pwd' = 'true') 

html = postForm('http://www.aceanalyser.com/Login.aspx', .params = params, curl = curl) 
grepl('Logout', html) 

Résultat: FAUX

S'il vous plaît me aider à comprendre la question

Répondre

4

Vous pouvez changer l'option 'Btn_Login' = 'GO' à quelque chose comme

'Btn_Login.x' = '22', 
'Btn_Login.y' = '14' 

Selon this, la raison est un bug.

Certains navigateurs (IIRC c'est juste quelques versions d'Internet Explorer) envoient seulement les coordonnées de la carte d'image (dans name.x et name.y) et ignorent la valeur.

1

Si vous êtes sûr que vos informations d'identification sont correctes, vous pouvez essayer d'ajouter plus d'arguments supplémentaires setopt curl, suivant ce example en PHP. Il vaut peut-être mieux essayer de contrôler le transfert de vos informations d'identification. Peut-être que l'encodage supplémentaire est nécessaire ou inutile.