Как обойти блокировку API запрещенных сервисов с помощью скриптов R

Несмотря на блокировку различных сервисов, онлайн-бизнесу они жизненно необходимы, особенно — их интеграция по API. В этой статье я расскажу, как обойти блокировку API запрещенных сервисов в скриптах R и продолжать использовать пакеты ryandexdirect, rvkstat, rmytarget, googlesheets, RGA и bigrquery. Это позволит использовать API Google ***ytics, Google Sheets, Google BigQuery (актуально для РФ) и ВК, Яндекс.Директ, myTarget (актуально для Украины).
Обход блокировки в полуавтоматическом режиме
1. Найдите любой сервис, генерирующий списки доступных прокси (например, https://hidemy.name/ru/proxy-list/).
2. Выберите в фильтре тип прокси, поддерживающий HTTPS.
3. Сформируйте список доступных прокси-серверов.
4. Далее понадобятся только IP-адрес и порт прокси сервера (обычно использую сервера с портом 3128):
5. Например, возьмем американский сервер, который из третьей строки списка IP 104.37.212.5, порт 3128. В код R необходимо направить интернет-соединение через прокси-сервер, для этого добавляем в код строку:
Sys.setenv(https_proxy=\"https://104.37.212.5:3128\")6. Пишем код обращения к API (пример — чуть дальше).
7. Добавляем строку для отключения интернет-соединения от прокси-сервера:
Sys.unsetenv(\"https_proxy\")
8. Если прокси-сервер требует прохождения аутентификации, можете указать имя пользователя и пароль:
Sys.setenv(https_proxy=\"https://user:password@proxy_server:port\")9. Проверьте, установлена ли настройка соединения — введите в R консоль комaнду:
Sys.getenv(\"https_proxy\")В ответ на эту комaнду в консоли появится запись:
[1] \"https://104.37.212.5:3128\"Это значит, что соединение через прокси установлено успешно.
Создать обращение к API Google ***ytics через прокси-сервер
#Установка пакетовinstall_github(\\\'artemklevtsov/RGA\\\') #Подключаем пакет RGAlibrary(RGA)#ID представления из которого необходимо получить данные ga_view_id <- \"ga:1111111111\"#Направляем интернет-соединение через прокси-сервер, IP и порт которого мы получили на предыдущем шагеSys.setenv(https_proxy=\"https://104.37.212.5:3128\") #Аутентификация в Google ***yticsauthorize()#Запрашиваем данные из Google ***yticsga_data <-get_ga(profileId = ga_view_id, start.date = \"8daysAgo\", end.date = \"yesterday\", dimensions = \"ga:date\", metrics = \"ga:impressions, ga:adClicks, ga:adCost, ga:sessions, ga:bounces, ga:transactions\")#Отключаемся от прокси-сервераSys.unsetenv(\"https_proxy\")Создать обращение к API Яндекс.Директ через прокси-сервер
Перед использованием приведенного ниже кода необходимо установить пакеты devtools и ryandexditrect:
install.packages(\"devtools\")library(devtools)install_github(\\\'selesnow/ryandexdirect\\\')Для получения API токена необходимо установить одно из расширений для браузера, которое позволяет обойти блокировку сайтов. Можете установить прокси, например.
Теперь можно использовать следующий код на языке R, подставляя в аргументы функций свои значения:
#Подключаем пакет ryandexdirectlibrary(ryandexdirect)#Получаем API токенmyToken <- yadirGetToken()#Направляем интернет-соединение через прокси-сервер, IP и порт которого мы получили на предыдущем шагеSys.setenv(https_proxy=\" https://104.37.212.5:3128\")#Обращаемся к API Яндекс.ДиректMy_report <- yadirGetReport(ReportType = \"CAMPAIGN_PERFORMANCE_REPORT\", DateRangeType = \"CUSTOM_DATE\", DateFrom = \\\'2017-01-01\\\', DateTo = \\\'2017-01-31\\\', Login = <YourLogin>, Token = myToken)#Отключаемся от прокси-сервераSys.unsetenv(\"https_proxy\")Как автоматизировать получение IP и порта прокси-сервера?
Если установить ещё несколько пакетов и немного дописать код, процесс получения IP-адреса и порта бесплатного прокси-сервера можно полностью автоматизировать.
Дело в том, что сервис GimmeProxy API предоставляет возможность загрузки IP адреса и порта с помощью API.
Во-первых, необходимо установить пакеты RCurl и jsonlite:
#Установка пакетовif(!\"RCurl\" %in% installed.packages()[,1]) {install.packages(\"RCurl\")}if(!\"jsonlite\" %in% installed.packages() [,1]){install.packages(\"jsonlite\")}#Подключаем пакетыlibrary(RCurl) library(jsonlite)library(ryandexdirect)#Запрашиваем IP-адрес и портproxy_list_raw <- getURL(\"https://gimmeproxy.com/api/getProxy?supportsHttps=true&port=3128\") #Сохраняем IP-адрес и порт в переменную для использования в кодеproxy_ip_port <- fromJSON(proxy_list_raw)#Направляем интернет-соединение через прокси-сервер Sys.setenv(https_proxy=proxy_ip_port)#Получаем 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\"), Login = <YourLogin>, Token = myToken) #Отключаемся от прокси-сервераSys.unsetenv(\"https_proxy\")Вначале по API мы запрашиваем IP-адрес и порт прокси-сервера с помощью функции getURL из пакета Curl, далее конвертируем её в объект-лист с помощью функции fromJSON, доступной в пакете jsonlite, и, наконец, сохраняем IP-адрес и порт в переменную proxy_ip_port. Затем эту переменную используем в коде в качестве аргумента функции Sys.setenv.
Как вы понимаете, все бесплатное работает не так стабильно, как хотелось бы, поэтому в качестве недорогой но стабильно работающей и значительно более гибкой в настройках альтернативы рекомендую купить доступ к API у HideMy.name. Запросите доступ к API в этойформе.
Актуальную стоимость доступа к API можно узнать по этой ссылке.
Как автоматизировать получение IP-адреса, порта прокси-сервера и запуск необходимых настроек с помощью пакета getProxy
Код из предыдущего пункта — рабочий, он полезен для понимания, как использовать любое API, с помощью которого можно получить IP и порт прокси-сервера.
Чтобы упростить работу с бесплатными сервисами, предоставляющими IP и порт прокси-серверов, я написал пакет getProxy. С его помощью вы в одной строке кода можете автоматически запрашивать IP-адрес и порт прокси, применять к запросу фильтры по порту, странам и типу прокси-сервера, а также сразу внедрять полученные настройки.
На данный момент пакет содержит всего одну функцию getProxy. Функция использует два бесплатных API-сервиса: gimmeproxy.com и getproxylist.com, обращаясь к ним за IP и портом публично доступных и бесплатных прокси-серверов.
Установка пакета getProxy
Установите пакет из репозитория GitHub:
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 Google ***ytics через прокси-сервер с помощью пакета getProxy
# подключаем библиотекиlibrary(getProxy)library(RGA)# аутентификация в Google ***yticsauthorize()# ID представления из которого необходимо получить данныеga_view_id <- \"ga:1111111111\" # Перенаправляем соединение через Proxy серверgetProxy(supportsHttps = T, country = \"us\", type = \"http\", action = \"start\")# Запрашиваем данные из Google ***yticsga_data <-get_ga(profileId = ga_view_id, start.date = \"8daysAgo\", end.date = \"yesterday\", dimensions = \"ga:date\", metrics = \"ga:impressions, ga:adClicks, ga:adCost, ga:sessions, ga:bounces, ga:transactions\")# Отключаемся от Proxy сервераgetProxy(action = \"stop\") Как получить данные из Google ***ytics в R и загрузить в Power BI Ранее я описывал дополнительные примеры кода на на языке R по работе с API
Пример обращения к 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\"), Login = <YourLogin>, Token = myToken)#Отключаемся от прокси-сервераgetProxy(action = \"stop\")Этот код при каждом запуске будет автоматически запрашивать настройки доступного прокси-сервера и применять их.
Выводы
Для обхода блокировки доступа к API в ваши скрипты на языке R достаточно добавить всего две строки и использовать функции Sys.setenv и Sys.unsetenv.
Немного дописав скрипт, вы сможете беспрепятственно получать данные из API необходимых сервисов. В большинстве случаев будет достаточно бесплатных API-сервисов, для работы с которыми я написал пакет getProxy.
Язык R в интернет-маркетинге — дайджест полезных публикаций Читайте также о методах использования языка R
Надеюсь, пост поможет вам спокойно работать в привычных сервисах, невзирая на внешние обстоятельства.
Комментарии:
Система почтового маркетинга. Как удержать доверия подписчиков одним приветственным письмом...
02 11 2026 23:32:33
Мы сменили CMS, не просев в трафике, и превратили каталог товаров в полноценный интернет-магазин....
01 11 2026 18:10:17
К чему стоит относиться с особенным вниманием при отправке рассылок. Грамматические ошибки, тема, прехедер и другие стратегически важные составляющие письма. Узнать больше!...
31 10 2026 13:14:41
Новая услуга для бизнесов, которым большое количество подписчиков не приносит продаж...
30 10 2026 8:52:28
Готовы ли вы доверить основные настройки кампании автоматическим алгоритмам?...
29 10 2026 22:51:50
7 советов для оптимизации вашего профиля в Google Мой Бизнес....
28 10 2026 21:48:11
Расширяем возможности визуализации данных из Google ***ytics c помощью пакета RGA и Power BI...
27 10 2026 8:43:21
Мануал, по которому вы создадите специальный отчет, чтобы применить его на своем сайте....
26 10 2026 11:23:27
Netpeak подводит итоги 2016 года и делится планами на будущее....
25 10 2026 6:50:22
Основные законы приняты. Что это значит?...
24 10 2026 14:56:13
Впереди ещё черная пятница и новогодние праздники. И успех массовых распродаж можно повторить....
23 10 2026 18:56:53
Виктория Игнатьева рассказала про опыт обучения на наших курсах....
22 10 2026 1:27:47
Бонус в статье: как собрать аудитории для ремаркетинга на брошенную корзину...
21 10 2026 5:36:34
Пиксель Facebook — инструмент аналитики рекламной системы, который можно использовать и для Instagram....
20 10 2026 13:57:11
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
19 10 2026 0:33:38
Проверенные лайфхаки по платному трафику от спикеров и участников конференции 8P 2018...
18 10 2026 19:41:29
Настроенная бизнес-страница компании в Instagram и на Facebook помогает в продвижении товаров и услуг в интернете. Поэтому так важно сделать их seo-friendly. Читать!...
17 10 2026 16:55:52
Как снизить стоимость лидов путём использования новых технологий...
16 10 2026 8:33:27
Одесса. Конференция «Контекстная реклама 2013». Самые полезные настройки рекламной кампании....
15 10 2026 13:35:30
Все про kpi охват в социальных медиа или как оценивать эффективность работы SMM-специалиста?...
14 10 2026 17:16:45
Что нужно знать о целевой аудитории, как грамотно воровать у других и что нужно сделать, чтобы настроить идеальную рекламную кампанию....
13 10 2026 12:30:47
Правила, требования, особенности. А ещё примеры, которые помогут создать правильную, с точки зрения поисковиков, рекламу. Читать!...
12 10 2026 6:11:29
Андреас Рётль о продвижении Journi: как трое выпускников Стэнфордского университета создали приложение для сторителлинга с 25 000 пользователями в 100 странах....
11 10 2026 21:18:27
Недавно у меня закончилась видеокампания на ютуб, по которой удалось собрать исследование Brand Lift. Хочу поделиться инсайтами...
10 10 2026 11:21:21
Зная стоимость клика в вашей тематике или регионе, коэффициент конверсии на сайте, вы можете оценить объем необходимых в рекламу инвестиций и прогнозировать стоимость конверсии. Узнать больше!...
09 10 2026 19:56:40
Семнадцать крутых шагов к эффективному бренду Заг — это авторский неологизм от слова зигзаг (англ. zigzag). Он подразумевает движение в другом направлении....
08 10 2026 0:46:19
Партнерская программа — это когда сервис дает партнеру вознаграждение за приведенных клиентов. Получить деньги и/или другие плюшки можно также по реферальной программе. Как это работает? Разбираемся на примерах....
07 10 2026 21:40:34
Дублирование контента на разных сайтах, ориентированных на рынки разных стран, например, на публику Канады...
06 10 2026 2:12:27
Динамический ремаркетинг — один из самых эффективных способов продаж для любой группы товаров. В этой статье мы поделимся тонкостями технической подготовки к запуску динамического ремаркетинга в Facebook....
05 10 2026 19:57:29
Один из самых известных отчетов в Google ***ytics «Аудитория/Обзор». Но кроме него есть еще несколько, которые будут весьма полезны для вашего блога. Какие именно, читайте дальше....
04 10 2026 4:10:40
Google «выкатил» алгоритм Панда 2.2, как пару недель назад обещал Мэтт Каттс....
03 10 2026 11:12:53
Все успешные люди немного сомневаются в своих достижениях и рефлексируют о большом количестве ошибок. Не ок, когда сомнения затягивают и разрушают самооценку, создают постоянное напряжение. Давайте разбираться с синдромом самозванца....
02 10 2026 21:44:25
Суть бренда на одном дыхании: о рекламе с любовью. Изначально под большой идеей мы пониманием ту пользу, которую несет бренд в окружающий его мир. Помимо этого, большая идея — это те «рельсы», по которым будут ехать все коммуникации бренда в течение нескольких лет...
01 10 2026 17:43:49
После того, как мы разобрали виды мобильных версий сайтов, их плюсы и минусы — стоит поговорить о сервисах, которые облегчают аудит....
30 09 2026 2:12:20
Шаблон по настройке и оптимизации динамических поисковых объявлений...
29 09 2026 7:38:20
Как мы создаем BI-решение для департамента поискового продвижения — первые шаги...
28 09 2026 8:28:39
Клиникка использует лазеры и нуждается в продвижении. В специфических сферах привлечь потребителя впервые бывает сложнее и дороже, чем удержать его. Этот кейс о том, как повысить количество обращений новых клиентов с помощью видеорекламы...
27 09 2026 20:45:11
Что ждет новичка в его первый день работы в Netpeak — подарки, первые задачи и традиции компании. Все, что нужно знать, чтобы меньше волноваться и влиться в коллектив. Узнать больше!...
26 09 2026 8:53:28
Образец товарного фида можно использовать при запуске динамических объявлений в поисковой сети Яндекса и Google, в кампаниях со смарт-баннерами в Яндекс.Директ, в динамических медийных кампаниях Google Рекламы, в товарной рекламе — с помощью Google Merchant Center....
25 09 2026 13:51:28
Требования к интернет-магазину, мануал по регистрации, что может пойти не так...
24 09 2026 6:38:26
Прежде чем использовать феминитивы в коммуникации со своими клиентами и сотрудниками, убедитесь, что им это нужно и важно. Впрочем, ждите негатива при любом раскладе. Что с ним делать? Рассказываем....
23 09 2026 16:49:34
Нейронные сети, нейросети онлайн, сверхточные нейронные сети. Я рассажу, как они устроены, как написать свою нейронную сеть с нуля, как правильно обучить нейронную сеть на имеющихся данных...
22 09 2026 8:46:38
Создание даже короткого ролика может стоить дорого. Поэтому можно использовать бесплатный инструмент Bumper Machine от Google....
21 09 2026 19:20:33
Чтобы увеличить продажи и улучшить их эффективность в новых условиях необходимо применять «социальные доказательства»....
20 09 2026 22:47:39
Хотите говорить с клиентами? Пишите им в телеге. Для этого важно продвижение телеграм-канала. Что и как делать для раскрутки — подробная инструкция....
19 09 2026 13:21:55
10 шагов к я-бренду из книги «Я-бренд. Формула успеха». Марк вырастил свой бренд до размеров торгового бизнеса с объемами продаж в миллиарды долларов. Читайте, здесь есть и сама формула, подходящая для товара, сайта или торговли машинами...
18 09 2026 6:56:57
Психологический бестселлер. Как достичь гармонии во всех делах и начать получать удовольствие от жизни, — об этом читайте в новой рецензии Константина Рябенко на книгу Михая Чиксентмихайи «Поток»....
17 09 2026 8:39:52
Написание и распространение пресс-релизов концептуально устарело. Как привлечь аудиторию читателей СМИ без них?...
16 09 2026 20:54:56
Небольшой набор секретов по работе с Планировщиком ключевых слов гугла...
15 09 2026 11:15:51
Метод бoмжа в маркетинге. Как разработать позиционирование стартапа при ограниченных ресурсах...
14 09 2026 14:44:22
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::