使用 R 将登录表单发布到 coursera;GET 时看不到表单
POSTing a login form to coursera using R;cannot see the form when GET
我正在尝试 post 一个登录表单来登录 coursera,但我还没有成功。
使用 coursera,登录 URL 上的登录表单会提前显示。如果我通过 getURL
获取网站,甚至在 post 登录表单之前,然后将其写入文件,我看不到与用户名和密码相关的字段,基本上我看不到实际的表单,顺便说一句,使用 Firebug 或我可以看到的检查元素。
例如,如果您尝试以下代码,您可以看到我们通过阅读页面获得的输出html。
library(RCurl)
library(XML)
defaultOptions <- curlOptions(
httpheader = list('user-agent'=str_c(R.version$platform,R.version$version.string,sep=", ")),
followlocation = TRUE,
cookiefile = "RCurlCookies.txt",
cainfo = system.file("CurlSSL","cacert.pem", package = "RCurl"))
options(RCurlOptions = defaultOptions)
handle <- getCurlHandle()
url <- getURL("https://www.coursera.org/?authMode=login",
curl = handle, .opts = defaultOptions, ssl.verifyhost = 0L, ssl.verifypeer = 0L)
con <- file("output.html")
writeLines(con = con, url)
close(con)
options(RCurlOptions = list())
所以我猜这就是 POST
也不起作用的原因,因为它看不到表格。如果确实如此,那么我可以使用 whether RHTMLForms' or use
postForm` 通过创建句柄并提供一些参数来实际进行身份验证。
postForm(url, .params = params, curl = curl, style="post", cainfo=signatures)
我希望能够 post 使用用户名:"username" 和密码:"xxxxxxxxxx" 的登录表单。
P.S 使用 R 的任何其他方法也很好,到目前为止我能够处理 RSelenium,它对浏览器版本有很多大惊小怪,并创建一个会话,否则会很好.
我尝试使用 docker Selenium 与浏览器交互并提交表单,这似乎没有任何问题并且工作正常。我强烈建议在 R 或其他语言(例如 python.
中使用 Selenium
我正在尝试 post 一个登录表单来登录 coursera,但我还没有成功。
使用 coursera,登录 URL 上的登录表单会提前显示。如果我通过 getURL
获取网站,甚至在 post 登录表单之前,然后将其写入文件,我看不到与用户名和密码相关的字段,基本上我看不到实际的表单,顺便说一句,使用 Firebug 或我可以看到的检查元素。
例如,如果您尝试以下代码,您可以看到我们通过阅读页面获得的输出html。
library(RCurl)
library(XML)
defaultOptions <- curlOptions(
httpheader = list('user-agent'=str_c(R.version$platform,R.version$version.string,sep=", ")),
followlocation = TRUE,
cookiefile = "RCurlCookies.txt",
cainfo = system.file("CurlSSL","cacert.pem", package = "RCurl"))
options(RCurlOptions = defaultOptions)
handle <- getCurlHandle()
url <- getURL("https://www.coursera.org/?authMode=login",
curl = handle, .opts = defaultOptions, ssl.verifyhost = 0L, ssl.verifypeer = 0L)
con <- file("output.html")
writeLines(con = con, url)
close(con)
options(RCurlOptions = list())
所以我猜这就是 POST
也不起作用的原因,因为它看不到表格。如果确实如此,那么我可以使用 whether RHTMLForms' or use
postForm` 通过创建句柄并提供一些参数来实际进行身份验证。
postForm(url, .params = params, curl = curl, style="post", cainfo=signatures)
我希望能够 post 使用用户名:"username" 和密码:"xxxxxxxxxx" 的登录表单。
P.S 使用 R 的任何其他方法也很好,到目前为止我能够处理 RSelenium,它对浏览器版本有很多大惊小怪,并创建一个会话,否则会很好.
我尝试使用 docker Selenium 与浏览器交互并提交表单,这似乎没有任何问题并且工作正常。我强烈建议在 R 或其他语言(例如 python.
中使用 Selenium