Настройка прокси для R - PullRequest
71 голосов
/ 24 июня 2011

Я столкнулся с проблемой при подключении R к интернету в моем офисе.Может быть, это связано с настройками локальной сети.Я перепробовал почти все возможные способы, с которыми я сталкиваюсь в сети (см. Ниже), но все же тщетно.

  • Метод 1: вызов R с использованием --internet2

  • Метод 2: вызов R путем установки ~/Rgui.exe http_proxy=http:/999.99.99.99:8080/ http_proxy_user=ask

  • Метод3: Настройка Setinternet2=TRUE

  • Метод4:

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

Выше всех методов я могу загружать пакеты напрямую изCRAN также может загружать файлы с помощью команды download.file

, но с помощью команд getURL(RCurl), readHTMLTable(XML), htmlTreeParse(XML) я не могу извлечь веб-данные.Я получаю ~<HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD>~ ошибку.

Как установить настройки прокси-сервера локальной сети для пакета XML в R?

Ответы [ 11 ]

46 голосов
/ 28 ноября 2011

В 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, как в верхнем, так и в нижнем регистре.

22 голосов
/ 24 июня 2011

Проблема связана с вашими параметрами скручивания - пакет RCurl, похоже, не использует internet2.dll.Вам нужно указать порт отдельно, и, вероятно, вам нужно будет указать данные для входа в систему в качестве сетевых учетных данных, например,

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

Не забудьте избежать обратной косой черты в вашем пароле.Вам также может понадобиться обернуть URL-адрес при вызове на curlEscape.

15 голосов
/ 17 июля 2015

Для RStudio просто нужно сделать это:

Сначала откройте RStudio, как всегда, выберите в верхнем меню:

Инструменты - Глобальные Опции - Пакеты

Снимите флажок: Использовать библиотеку / прокси Internet Explorer для HTTP

А затем закройте Rstudio, кроме того, вы должны:

  1. Найдите файл (.Renviron) на вашем компьютере, скорее всего, вы найдете его здесь: C: \ Users \ ваше имя пользователя \ Documents. Обратите внимание, что если он не существует, вы можете создать его, просто написав эту команду в RStudio:

    file.edit('~/.Renviron')
    
  2. Добавьте эти две строки в инициалы файла:

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

И это все .. ?? !!!

11 голосов
/ 02 ноября 2011

У меня была та же проблема в моем офисе, и я решил ее, добавив прокси в место назначения ярлыка R; щелкните правой кнопкой мыши на значке R, настройках и в поле назначения добавьте

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

Обязательно поместите каталог, в котором установлена ​​программа R. Это подходит для меня. Надеюсь, что это поможет.

7 голосов
/ 24 апреля 2016

Этот пост относится к проблемам R-прокси в * nix.Вы должны знать, что в R есть много библиотек / методов для извлечения данных через Интернет.

Для 'curl', 'libcurl', 'wget' и т. Д. Просто выполните следующее:

  1. Открыть терминал.Введите следующую команду:

    sudo gedit /etc/R/Renviron.site
    
  2. Введите следующие строки:

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

    Заменить username, password, abc.com, xyz.comи port с этими настройками, специфичными для вашей сети.

  3. Выйдите из R и запустите снова.

Это должно решить вашу проблему с 'libcurlМетод 'и' curl '.Тем не менее, я не пробовал это с «httr».Один из способов сделать это с помощью «httr» только для этого сеанса заключается в следующем:

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

Вам необходимо заменить настройки, относящиеся к вашему ч / б, в соответствующих полях.

6 голосов
/ 14 октября 2016

Вдохновленный всеми ответами, касающимися Интернета, наконец-то я нашел решение для правильной настройки Proxy для R и Rstudio.

Необходимо выполнить несколько шагов, возможно, некоторые из них бесполезны, но комбинация работает!

  1. Добавление переменных окружения http_proxy и https_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. Если вы запускаете R со иконки на рабочем столе, вы можете добавить флаг --internet к целевой строке (щелчок правой кнопкой мыши -> Свойства)

    например "C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2

  3. Для RStudio вам просто нужно сделать это:

    Сначала откройте RStudio, как всегда, выберите в верхнем меню:

    Tools-Global Options-Packages

    Снимите флажок: Использовать библиотеку / прокси Internet Explorer для HTTP

  4. Найти файл (.Renviron) на вашем компьютере, чаще всеговероятно, вы найдете это здесь: C:\Users\your user name\Documents.

    Обратите внимание, что: если он не существует, вы можете создать его, просто написав эту команду в 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. Перезапустить R. Введите следующие команды в R, чтобы убедиться, что приведенная выше конфигурация работает хорошо:

    Sys.getenv("http_proxy")
    
    Sys.getenv("http_proxy_user")
    
    Sys.getenv("https_proxy")
    
    Sys.getenv("https_proxy_user")
    
    Sys.getenv("ftp_proxy")
    
  6. Теперь вы можете установитьПакеты, как вы хотите, используя команду как:

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

    Важно добавить method="libcurl", иначе это не будет работать.

6 голосов
/ 07 августа 2013

В Windows 7 я решил эту проблему, зайдя в настройки своего окружения (, попробуйте эту ссылку, чтобы узнать, как ) и добавив пользовательские переменные http_proxy и https_proxy с моими данными прокси.

6 голосов
/ 05 октября 2012

Если вы запускаете R с иконки на рабочем столе, вы можете добавить флаг --internet к целевой строке (щелкните правой кнопкой мыши -> Свойства), например,

"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2 
1 голос
/ 02 июня 2017

Самый простой способ заставить все работать в 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

0 голосов
/ 31 октября 2017

Мое решение на Windows 7 (32 бита).Версия R 3.0.2

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

setInternt2

updateR(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...