2017-07-28 130 views
8

我想用我的凭据登录到.NET网站,但无法使其工作。我的代码是从下面的线程启发使用R登录到.NET网站

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) 

结果:FALSE

请帮助我理解这个问题

回答

4

您可以选择 'Btn_Login' = 'GO' 改变 类似

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

this,原因是一个错误。

某些浏览器(IIRC只是某些版本的Internet Explorer)只发送图像映射的坐标(在name.x和name.y中)并忽略该值。

1

如果你确信你的凭据是正确的,你可以尝试添加更多额外的curl setopt参数,在example之后。 也许还值得一试,以监控您的凭证如何转移。也许一些额外的编码是必要的或不必要的添加。