getProxy

Описание пакета getProxy.

Пакет getProxy предназначен для работы с бесплатными прокси серверами из R.

CRAN

Rdoc rpackages.io rank

Подробное описание.

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

На данный момент пакет содержит всего одну функцию getProxy, данная функция в своей работе использует 2 бесплатных API сервиса gimmeproxy.com и getproxylist.com, обращаясь к ним за IP и портом публично доступных и бесплатных прокси серверов.

Установка пакета getProxy:

Устанавливать пакет как из CRAN так и из репозитория на GitHub, для этого вам потребуется пакет devtools, для установки воспользуйтесь приведённым ниже кодом.

install.packages("getProxy")
if(!"devtools"" %in% installed.packages()[,1]){install.packages("devtools")}
library(devtools)
install_github("selesnow/getProxy")

Аргументы функции getProxy:

country - Текстовое значение, код страны в которой вы хотите запросить настройки прокси сервера, в формате ISO 3166-1 alpha-2, коды всех стран можно найти тут.

notCountry - Код страны по которой не надо запрашивать настройки прокси сервера, в формате ISO 3166-1 alpha-2, коды всех стран можно найти тут.

supportsHttps - Логическое значение TRUE или FALSE, используется для фильтрации прокси серверов по поддержке протокола https.

port - Номер порта для фильтрации прокси серверов.

type - Тип протокола прокси сервера, поддерживает возможные значения “http”, “socks4”, “socks5”.

action - Действие которое необходимо сделать, “start” для того, чтобы получить и сразу направить интернет соединение через прокси сервер, “get” в случае если вы хотите просто получить IP адрес и порт прокси сервера, но не применять эти настройки, “stop” если вы хотите отключится от прокси сервера.

Пример использования функции getProxy.

Для того, чтобы автоматизировать процесс получения IP адреса и порта прокси сервера, и созранения его в объект без перенаправления интернет соединения достаточно в аргументе action установить значение “get”.

prox_ip_and_port <- getProxy(port = "3128", country = "RU", action = "get")

Если помимо того, что вы хотите получить IP адрес и порт прокси сервера вы одновременно хотите применить полученные настройки в аргумент action передайте значение “start”.

prox_ip_and_port <- getProxy(port = "3128", country = "RU", supportsHttps = TRUE, action = "start")

Если вам необходимо отключится от прокси сервера достаточно передать в аргумент action значение “stop”.

getProxy(action = "stop")

Пример обращения к API Яндекс.Директ через прокси сервер с помощью пакета getProxy.

Перед запуском приведённого ниже кода у вас уже должны быть установлены пакеты ryandexdirect и getProxy, процесс установки данныъ пакетов описан в предыдущих пунктах статьи.

#Подключаем пакеты
library(ryandexdirect)
library(getProxy)
 
#Запрашиваем IP адрес и порт и применяем полученные настройки
getProxy(port = "3128", country = "RU", supportsHttps = TRUE, action = "start")
 
#Получаем API токен
myToken <- yadirGetToken()
 
#Обращаемся к API Яндекс Директ
My_report <- yadirGetReport(ReportType = "CAMPAIGN_PERFORMANCE_REPORT", 
                            DateRangeType = "CUSTOM_DATE", 
                            DateFrom = '2017-01-01', 
                            DateTo = '2017-01-31', 
                            FieldNames = c("CampaignName","Impressions","Clicks"), 
                            FilterList = c("Clicks GREATER_THAN 49","Impressions LESS_THAN 1001"), 
                            Login = <YourLogin>, 
                            Token = myToken)
 
#Отключаемся от прокси сервера
getProxy(action = "stop")

Приведённый выше код при каждом запуске будет автоматически запрашивать настройки доступного прокси сервера и применять их.

Автор пакета

Алексей Селезнёв, Head of analytics dept. at Netpeak
email: selesnow@gmail.com
skype: selesnow
facebook: facebook.com/selesnow
linkedin: linkedin.com/in/selesnow
blog: alexeyseleznev.wordpress.com