R 的代理设置

我在办公室上网时遇到了一些问题。这可能是由于局域网的设置。我尝试了几乎所有我在网上遇到的可能的方法(见下文) ,但仍然是徒劳的。

  • 方法1: 使用 --internet2调用 R

  • 方法2: 通过设置 ~/Rgui.exe http_proxy=http:/999.99.99.99:8080/ http_proxy_user=ask调用 R

  • 方法3: 设置 Setinternet2=TRUE

  • 方法四:

    curl <- getCurlHandle()
    curlSetOpt(.opts = list(proxy = '999.99.99.99:8080'), curl = curl)
    Res <- getURL('http://www.cricinfo.com', curl = curl)
    

In above all methods I can able to load packages directly from CRAN also able to download files using download.file command

But using getURL(RCurl), readHTMLTable(XML), htmlTreeParse(XML) commands I am unable to extract web data. I am getting ~<HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD>~ error.

How to set LAN proxy settings for XML package in R?

131593 次浏览

问题在于你的 curl 选项 RCurl包似乎没有使用 internet2.dll。 您需要单独指定端口,并且可能需要将用户登录详细信息作为网络凭证,例如,

opts <- list(
proxy         = "999.999.999.999",
proxyusername = "mydomain\\myusername",
proxypassword = "mypassword",
proxyport     = 8080
)
getURL("http://stackoverflow.com", .opts = opts)

请记住避免密码中的任何反斜杠。您可能还需要在对 curlEscape的调用中包装 URL。

我在办公室遇到过同样的问题,我解决了这个问题: 在 R 快捷方式的目的地添加代理; 点击 R 图标的右键,首选项,然后在目的地域添加

"C:\Program Files\R\your_R_version\bin\Rgui.exe" http_proxy=http://user_id:passwod@your_proxy:your_port/

一定要把目录你有 R 程序安装。这对我工作。希望这个帮助。

在 Mac OS 上,我找到了最好的解决方案 给你。引用作者的话,有两个简单的步骤:

1)开放终端机,并执行下列操作:

export http_proxy=http://staff-proxy.ul.ie:8080
export HTTP_PROXY=http://staff-proxy.ul.ie:8080

2)运行 R 并执行以下操作:

Sys.setenv(http_proxy="http://staff-proxy.ul.ie:8080")

仔细检查:

Sys.getenv("http_proxy")

我支持大学代理,这个解决方案非常有效。主要问题是在运行 R 之前导出 Terminal 中的项,包括大写和小写的项。

如果从桌面图标启动 R,则可以将 --internet标志添加到目标行(右键单击-> Properties) ,例如。

"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2

尝试了所有这些方法以及使用 netsh、 winhttp 等解决方案。 极客在酸的答案帮助我从服务器下载软件包,但这些解决方案都不适合使用我想运行的软件包(twitterpackage)。

最好的解决方案是使用允许您配置系统范围代理的软件。

FreeCap (免费)和 代理人(试用)在我的公司非常适合我。

请注意,您需要从您的浏览器和任何其他应用程序中删除代理设置,您已配置为使用代理,因为这些工具为您的计算机的所有网络流量提供系统范围的代理。

在 Windows7上,我通过进入我的环境设置(试试这个链接)并添加用户变量 http_proxyhttps_proxy和我的代理详细信息来解决这个问题。

对于 RStudio,你必须这样做:

首先,像往常一样打开 RStudio,从顶部菜单中选择:

工具 -全球化 选择-< strong > 软件包

取消选中选项: 为 HTTP 使用 Internet Explorer 库/代理

然后关闭 RStudio,此外,你必须:

  1. 查找文件(。在您的计算机中,您很可能会在这里找到它: C: 用户您的用户名文档。注意,如果它不存在,只需在 RStudio 中编写以下命令即可创建它:

    file.edit('~/.Renviron')
    
  2. Add these two lines to the initials of the file:

    options(internet.info = 0)
    
    
    http_proxy="http://user_id:password@your_proxy:your_port"
    

And that's it..??!!!

本文涉及 * nix 上的 R 代理问题。您应该知道 R 有许多库/方法可以通过 Internet 获取数据。

对于“ curl”、“ libcurl”、“ wget”等,只需执行以下操作:

  1. 打开一个终端。键入以下命令:

    sudo gedit /etc/R/Renviron.site
    
  2. Enter the following lines:

    http_proxy='http://username:password@abc.com:port/'
    https_proxy='https://username:password@xyz.com:port/'
    

    usernamepasswordabc.comxyz.comport替换为特定于您的网络的这些设置。

  3. 退出 R 并再次发射。

这应该可以解决“ libcurl”和“ curl”方法的问题。但是,我还没有用“ httr”尝试过。一种仅对该会话使用“ httr”的方法如下:

library(httr)
set_config(use_proxy(url="abc.com",port=8080, username="username", password="password"))

您需要在相关字段中替换特定于 n/w 的设置。

受到互联网上所有相关回应的启发,我终于找到了正确配置 R 和 RStudio 代理的解决方案。

有几个步骤可以遵循,也许其中的一些步骤是无用的,但组合工程!

  1. 添加具有代理详细信息的环境变量 http_proxyhttps_proxy

    variable name: http_proxy
    variable value: https://user_id:password@your_proxy:your_port/
    
    
    variable name: https_proxy
    variable value: https:// user_id:password@your_proxy:your_port
    
  2. If you start R from a desktop icon, you can add the --internet flag to the target line (right click -> Properties)

    e.g."C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2

  3. For RStudio just you have to do this:

    Firstly, open RStudio like always, select from the top menu:

    Tools-Global Options-Packages

    Uncheck the option: Use Internet Explorer library/proxy for HTTP

  4. Find the file (.Renviron) in your computer, most probably you would find it here: C:\Users\your user name\Documents.

    Note that: if it does not exist you can create it just by writing this command in R:

    file.edit('~/.Renviron')
    

    然后将这六行添加到文件的首字母:

    options(internet.info = 0)
    
    
    http_proxy = https:// user_id:password@your_proxy:your_port
    
    
    http_proxy_user = user_id:password
    
    
    https_proxy = https:// user_id:password0@your_proxy:your_port
    
    
    https_proxy_user = user_id:password
    
    
    ftp_proxy = user_id:password@your_proxy:your_port
    
  5. Restart R. Type the following commands in R to assure that the configuration above works well:

    Sys.getenv("http_proxy")
    
    
    Sys.getenv("http_proxy_user")
    
    
    Sys.getenv("https_proxy")
    
    
    Sys.getenv("https_proxy_user")
    
    
    Sys.getenv("ftp_proxy")
    
  6. Now you can install the packages as you want by using the command like:

    install.packages("mlr",method="libcurl")
    

    添加 method="libcurl"非常重要,否则它不会工作。

使 RStudio 中的所有东西在 Windows 10下工作的最简单方法:

打开 Internet Explorer,选择 Internet Options:

enter image description here


环境变量的开放编辑器:

enter image description here


在表单中添加一个变量 HTTP _ PROXY:

HTTP_PROXY=http://username:password@localhost:port/

例如:

HTTP_PROXY=http://John:JohnPassword@localhost:8080/

enter image description here


RStudio 应该工作:

enter image description here

我的解决方案在 Windows 7(32位)。 R 版本3.0.2

Sys.setenv(http_proxy="http://proxy.*_add_your_proxy_here_*:8080")


setInternt2


updateR(2)
  1. 使用 R.home("home")查找您的 R home
  2. 在您的 R 住宅中将以下行 添加到 Renviron.site
http_proxy=http://proxy.dom.com/
http_proxy_user=user:passwd


https_proxy=https://proxy.dom.com/
https_proxy_user=user:passwd
  1. 打开 R-> R 在它的主页中读取 Renviron.site-> 它应该可以工作:)