Настройка прокси для R

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

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

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

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

  • Method4:

    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?

12 ответов

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

Для 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"
    

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

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

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

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

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

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

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

Этот пост относится к проблемам 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"))

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

Вдохновленный всеми ответами, касающимися Интернета, я наконец нашел решение для правильной настройки 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, как всегда, выберите в верхнем меню:

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

    Снимите флажок: Использовать библиотеку / прокси 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"иначе это не сработает.

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

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

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

Самый простой способ заставить все работать в RStudio под Windows 10:

Откройте Internet Explorer, выберите Internet Options:

введите описание изображения здесь


Откройте редактор для переменных среды:

введите описание изображения здесь


Добавьте переменную HTTP_PROXY в форму:

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

Пример:

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

введите описание изображения здесь


RStudio должен работать:

введите описание изображения здесь

Опробовал все это, а также решения с использованием netsh, winhttp и т. Д. Ответ Geek On Acid помог мне загрузить пакеты с сервера, но ни одно из этих решений не помогло использовать пакет, который я хотел запустить (пакет twitteR).

Лучшее решение - использовать программное обеспечение, которое позволит вам настроить общесистемный прокси.

FreeCap (бесплатно) и Proxifier (пробная версия) отлично работали для меня в моей компании.

Обратите внимание, что вам нужно удалить настройки прокси из вашего браузера и любых других приложений, которые вы настроили для использования прокси, так как эти инструменты предоставляют общесистемный прокси для всего сетевого трафика с вашего компьютера.

  1. Найдите свой дом R сR.home("home")
  2. Добавьте следующие строки в свой дом R
      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в своем доме -> он должен работать :)

Мое решение на Windows 7 (32bit). R версия 3.0.2

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

setInternt2

updateR(2)
Другие вопросы по тегам