我正在为http://asdfree.com/编写一组可免费下载的 R 脚本,以帮助人们分析由英国数据服务托管的复杂样本调查数据。除了为这些数据集提供大量的统计教程外,我还想自动下载和导入这些调查数据。为此,我需要弄清楚如何以编程方式登录到这个英国数据服务网站。
我已经尝试了很多不同的RCurl和httr配置来登录,但是我在某个地方犯了一个错误,我被卡住了。我已尝试检查本文中概述的元素,但网站在浏览器中跳得太快,我无法理解发生了什么。
该网站确实需要登录名和密码,但我相信我什至在进入登录页面之前就犯了一个错误。
以下是该网站的工作方式:
起始页应为:https ://www.esds.ac.uk/secure/UKDSRegister_start.asp
此页面会自动将您的网络浏览器重定向到一个长 URL,该 URL 开头为:https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]
(1) 由于某种原因,SSL 证书在本网站上不起作用。这是我发布的关于此的 SO 问题。我使用的解决方法只是忽略 SSL:
library(httr)
set_config( config( ssl.verifypeer = 0L ) )
然后我在起始网站上的第一个命令是:
z <- GET( "https://www.esds.ac.uk/secure/UKDSRegister_start.asp" )
这给了我一个z$url
看起来很像https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]
我的浏览器也重定向到的页面。
然后,在浏览器中,您应该输入“uk data archive”并单击continue
按钮。当我这样做时,它会将我重定向到网页https://shib.data-archive.ac.uk/idp/Authn/UserPassword
我认为这是我卡住的地方,因为我无法弄清楚如何使用 cURLfollowlocation
并登陆该网站。注意:尚未输入用户名/密码。
当我使用来自 wayf.ukfederation.org.uk 页面的httr GET
命令时,如下所示:
y <- GET( z$url , query = list( combobox = "https://shib.data-archive.ac.uk/shibboleth-idp" ) )
该y$url
字符串看起来很像z$url
(除了最后有一个组合框=)。有没有办法通过RCurl或httruk data archive
进入这个认证页面?
我不知道我是否只是忽略了某些东西,或者我是否绝对必须使用我之前的 SO 帖子中描述的 SSL 证书或什么?
(2) 在我进入该页面时,我相信其余的代码将是:
values <- list( j_username = "your.username" ,
j_password = "your.password" )
POST( "https://shib.data-archive.ac.uk/idp/Authn/UserPassword" , body = values)
但我想该页面将不得不等待......