0

我正在尝试登录 Moddle 并获取一些日志文件:

postForm('http://ead.portalinstitutounibanco.org.br/login/index.php',
                    username = "Username value",
                    password = "Password value",
                    submitButton = "Acesso",
                    style = "POST")


url <- "http://ead.portalinstitutounibanco.org.br/course/report/log/index.php?chooselog=1&showusers=1&showcourses=1&id=149&user=0&date=0&modid=&modaction=0&logformat=downloadascsv"

download.file(url, destfile = "log2.txt")

但我将登录页面作为 txt 文件获取。我应该怎么办?

4

2 回答 2

0

当您提交登录表单时,Moodle 将设置一个 cookie 以确认您是经过身份验证的用户。您需要捕获此 cookie 并将其与您的第二个请求一起发送。

请参阅如何在 RCurl 中使用 cookie?了解如何使用 RCurl 管理 cookie。

于 2013-06-12T07:45:05.433 回答
0
handle <- getCurlHandle(cookiejar="")
postForm('http://ead.portalinstitutounibanco.org.br/login/index.php',
                username = "Username value",
                password = "Password value",
                submitButton = "Acesso",
                style = "POST",
                curl=handle                  )
url <- "http://ead.portalinstitutounibanco.org.br/course/report/log/index.php?chooselog=1&showusers=1&showcourses=1&id=149&user=0&date=0&modid=&modaction=0&logformat=downloadascsv"
getURL(url=url, curl=handle)

像上面这样的东西应该可以工作。当需要 cookie 工作时,您必须留在RCurl框架内。创建句柄并指定在第一个请求 ( postForm...)第二个 ( getURL...) 中使用它,同时确保设置为对第一个请求的响应的任何 cookie 也将在第二个请求中发送。download.file()不支持任何此功能。

让我知道它是否有效,因为我自己无法检查。

于 2014-02-28T15:38:07.553 回答