Настройка прокси для 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?
Ответы
Ответ 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)