R 从受密码保护的站点读取信息
在R教程中,我一直在使用readLines()从网站上获取信息。我现在希望从我自己的网站(特别是awstats数据)提取数据,但域受密码保护 是否有一种方法可以通过用户名和密码传递我需要的特定awstats数据的url url的格式为:R 从受密码保护的站点读取信息,r,R,在R教程中,我一直在使用readLines()从网站上获取信息。我现在希望从我自己的网站(特别是awstats数据)提取数据,但域受密码保护 是否有一种方法可以通过用户名和密码传递我需要的特定awstats数据的url url的格式为: 谢谢。如果它确实是http基本访问身份验证,那么连接的文档提供了一些帮助: 网址 请注意,https://连接是 仅当--internet2或 setInternet2(TRUE)用于 使用Internet Explorer内部构件), 而且只有当证书是 被认
谢谢。如果它确实是http基本访问身份验证,那么
连接的文档提供了一些帮助:
网址
请注意,https://连接是
仅当--internet2或
setInternet2(TRUE)用于
使用Internet Explorer内部构件),
而且只有当证书是
被认为是有效的。有了这个
仅限选项,该
用于需要
也接受身份验证
因此,您的URL字符串应如下所示:
不过,这可能只是Windows
希望这有帮助 您可以在url中嵌入用户名和密码,如:
您可以尝试将其用于readLines()
。如果不起作用,您可以尝试使用url()
打开连接:
zz <- url("http://userid:passw@domain.name:port/...")
readLines(zz)
close(zz)
这会将文件保存在指定的本地路径上
编辑:
正如csgillespie所说,您不应该在脚本中包含用户名和密码。如果使用source()或以交互方式运行脚本,则可以添加以下内容:
user <- readline("Give the username : ")
passw <- readline("Give the password : ")
Url <- paste("http://",user,":",passw,"@domain.name...")
readLines(Url,...)
user如果您有权访问该框,则始终可以读取awstats日志文件。如果您可以使用ssh将文件同步到该框中,那么就可以使用rsync
轻松同步最新的文件
使用过程中的轻微障碍
http://username:password@domain...
就是你把你的密码放在一个R脚本中-最好避免这样。当然,你可以通过脚本保护它,但只需一次失误。比如说,
- 有人问你一个类似的问题,你发布了你的脚本
- url。。。(?)现在将显示在您的服务器日志上吗
将url格式化为http://username:password@域…
用于download.file
对我不起作用,但是R.utils
提供了downloadFile
的功能,该功能工作得非常好:
require(R.utils)
downloadFile(myurl, myfile, username = "myusername", password ="mypassword")
请参阅@joris meys answer,了解避免在脚本中以纯文本形式包含用户名和密码的方法
编辑除了看起来像下载文件
之外,只需将URL重新格式化为http://username:password@域…
?嗯…这是http基本身份验证吗?也就是说,在弹出窗口中会出现密码提示,在输入错误的密码+1作为警告时,可能会出现401未经授权的错误。当然,应该在使用eg readline()请求用户名和密码或将其作为参数传递给脚本之后构造url。但是“如果你有权访问这个盒子”需要一个来自R外部的解决方案。@Joris:“来自R外部的解决方案”-我肯定R必须有一个用于ssh
;)的库。)我怀疑OP可能可以通过示例url的构造方式访问该框,但这只是一个猜测。完成它并不那么简单,而且非常依赖于相关机器和服务器的体系结构。我看到它发生的唯一方式是在R脚本中使用system()
,但这远远不是一个最佳解决方案,因为您再次遇到密码问题…谢谢@csgillespie。我还需要——我没有意识到的internet2选项。
require(R.utils)
downloadFile(myurl, myfile, username = "myusername", password ="mypassword")