Подтвердить что ты не робот

Настройка прокси для 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>~.

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

4b9b3361

Ответ 1

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

Ответ 2

Проблема с вашими параметрами curl – пакет 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.

Ответ 3

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

Во-первых, откройте RStudio, как всегда, выберите из верхнего меню:

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

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

И затем закройте Rstudio, кроме того, вам нужно:

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

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

    options(internet.info = 0)
    
    http_proxy="http://user_id:[email protected]_proxy:your_port"
    

И что это..??!!!

Ответ 4

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

"C:\Program Files\R\your_R_version\bin\Rgui.exe" http_proxy=http://user_id:[email protected]_proxy:your_port/

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

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

    http_proxy='http://username:[email protected]:port/'
    https_proxy='https://username:[email protected]:port/'
    

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

  • Закройте R и запустите снова.

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

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

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

Ответ 8

Вдохновленный всеми ответами, связанными с Интернетом, я нашел решение правильно настроить прокси для R и Rstudio. Существует несколько шагов, возможно, некоторые из этих шагов бесполезны, но комбинация работает!

  • Добавьте переменные среды http_proxy и https_proxy с данными прокси.

    имя переменной: http_proxy значение переменной: https://user_id:[email protected]_proxy:your_port/

    имя переменной: https_proxy значение переменной: https://user_id: password @your_proxy: your_port

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

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

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

    Во-первых, откройте RStudio, как всегда, выберите из верхнего меню:

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

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

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

    file.edit( '~/.Renviron')

    Затем добавьте эти шесть строк к инициалам файла:

    options (internet.info = 0)

    http_proxy = https://user_id: пароль @your_proxy: your_port

    http_proxy_user = user_id: пароль

    https_proxy = https://user_id: password0 @your_proxy: your_port

    https_proxy_user = user_id: пароль

    ftp_proxy = user_id: password @your_proxy: your_port

  • Restart R. Введите следующие команды в R, чтобы убедиться, что приведенная выше конфигурация работает хорошо:

    Sys.getenv( "http_proxy" )

    Sys.getenv( "http_proxy_user" )

    Sys.getenv( "https_proxy" )

    Sys.getenv( "https_proxy_user" )

    Sys.getenv( "ftp_proxy" )

  • Теперь вы можете установить пакеты так, как хотите, используя команду:

    install.packages( "MLR", метод = "Libcurl" )

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

Ответ 9

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

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

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


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

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


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

HTTP_PROXY=http://username:[email protected]:port/

Пример:

HTTP_PROXY=http://John:[email protected]:8080/    

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


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

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

Ответ 10

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

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

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

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

Ответ 11

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

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

setInternt2

Updater (2)