2017-07-28 21 views
8

Próbuję zalogować się przy użyciu moich poświadczeń do witryny .NET, ale nie mogę go uruchomić. Mój kod jest inspirowana z poniższym wątkuZaloguj się do witryny .NET za pomocą 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) 

Wynik: false

Proszę mi pomóc zrozumieć ten problem

Odpowiedz

4

Możesz zmienić opcję 'Btn_Login' = 'GO' do coś jak

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

Według this, powodem jest błąd.

Niektóre przeglądarki (IIRC to tylko niektóre wersje Internet Explorera) wysyłają tylko współrzędne obrazu mapy (w name.x i name.y) i ignorują wartość.

1

Jeżeli jesteś pewien, poświadczenia są prawidłowe, można spróbować dodać więcej dodatkowych argumentów curl setopt, po tym example w PHP. Warto również spróbować monitorować sposób przekazywania poświadczeń. Może jakieś dodatkowe kodowanie jest konieczne lub niepotrzebne.

Powiązane problemy