Как обойти блокировку 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
Надеюсь, пост поможет вам спокойно работать в привычных сервисах, невзирая на внешние обстоятельства.
Комментарии:
Настраиваем автоматическое получение отчетов по потерянным конверсиям для оптимизации рекламных кампаний....
14 10 2026 15:16:13
Нескучный инструктаж на примере @netpeak_ua о том, зачем компании корпоративный Twitter для продвижения контента, компании или персоны. А еще про хештеги, поиск читателей, аналитику, стиль ведения вашего микроблога, создание сообщества и акции...
13 10 2026 15:59:39
На скорость и полноту результатов продвижения влияют конкретные риски. И некоторые из них можно выделить еще до начала сотрудничества. Рассказываем, какие именно....
12 10 2026 9:37:49
Успешный блог помогает продавать товары и услуги, формировать сильный личный бренд, делиться своим опытом и задавать тренды. Осталось выбрать цель. Узнать как!...
11 10 2026 4:55:31
Менеджмент и лидерство: 4 разных типа руководства организацией и нескучные иллюстрации в стиле South park....
10 10 2026 20:19:48
О работе, креативности, мотивации и многом другом....
09 10 2026 4:50:55
Зачем маркетологи и аналитики обращаются к языку программирования R в повседневной работе нужно и какая польза от программирования на R в интернет-маркетинге в интервью Алексея Селезнева...
08 10 2026 4:23:31
О списках исключенных мест размещения будет интересно узнать тем, кто хочет облегчить себе работу с контекстно-медийными сетями....
07 10 2026 17:44:23
Выборка из 15 759 учетных записей клиентов WordStream в США по всем вертикалям, которые до размещали рекламу в поиске Google в 2020 году...
06 10 2026 5:31:20
Перед внедрением ремаркетинга следует хорошенько поработать над составлением базовых портретов аудитории сайта...
05 10 2026 21:43:52
Новости, доработки и обновления в услугах, блоге, Академии блога и Кластере....
04 10 2026 14:50:10
Кейсы, фишки и советы, опыт крупных брендов, маркетологов....
03 10 2026 14:48:34
Подробно рассказываем, как создать, внедрить и проверить XML-карту сайта....
02 10 2026 4:57:38
Андреас Рётль о продвижении Journi: как трое выпускников Стэнфордского университета создали приложение для сторителлинга с 25 000 пользователями в 100 странах....
01 10 2026 9:39:29
Популярные скрипты Google Рекламы позволяют автоматизировать рутинные и монотонные процессы. Каждый скрипт состоит из функций, переменных, объектов, сущностей, селекторов, итераторов...
30 09 2026 16:26:37
Не хотите настраивать объявление в Google Рекламе и Яндекс.Директ по отдельности? Узнайте, как сделать экспорт кампании и сэкономить время....
29 09 2026 3:44:33
Экспорт/импорт с помощью Excel-файла или таблиц Google позволит скопировать и перенести кампании, группы объявлений и объявления в Facebook вместе с креативами, текстами, ссылками и utm-метками...
28 09 2026 17:50:10
Расширяем возможности визуализации данных из Google ***ytics c помощью пакета RGA и Power BI...
27 09 2026 15:46:47
Проверяем, есть ли разница в ранжировании при наличии/отсутствии этих слов в метаданных. Эксперимент....
26 09 2026 20:55:59
Простой способ отслеживания как внутренних, так и внешних битых ссылок. Узнать больше!...
25 09 2026 10:43:51
Как стандартизировали сбор данных по проектам клиентов и отчетности, чтобы тратить меньше времени и не совершать лишние действия...
24 09 2026 10:34:55
Узнайте, подходят ли видеоролики для продвижения вашего бизнеса, и будет ли рентабельной видеореклама в YouTube...
23 09 2026 0:57:46
На что обращает внимание система и менеджеры Google при проверке сайта и аккаунта....
22 09 2026 13:34:52
Основные этапы раскрутки сайта. Что такое и как работает поисковая оптимизация, ее виды, особенности, преимущества...
21 09 2026 5:59:41
Понятный алгоритм анализа поисковых запросов с экономией времени на чистку по специальному шаблону модерации...
20 09 2026 9:41:14
О создании структуры сайта на основе семантического ядра, работе с Xmind и таблицами онлайн...
19 09 2026 22:37:23
Если у вас есть продукт, о котором миру стоит узнать, книга Pitch perfect придется вам очень кстати....
18 09 2026 14:34:31
Личный опыт экс-главреда экс-блога Netpeak (сейчас — Netpeak Journal): о работе с информацией, мотивации написания, редактуре черновика, подаче информации по степени важности, выделении главного и составлении окончательной версии текста. Как сделать текст логичным и полезным? Узнайте!...
17 09 2026 4:15:15
Советы и даже требования SEO-специалистов к разработчикам сайтов....
16 09 2026 2:17:33
Легче запомнить алгоритм правильной отправки писем, чем потом вытягивать их из папки со спамом....
15 09 2026 21:46:47
Мотивация сотрудников к работе с текстами. Опыт бюро копирайтинга Texbroker...
14 09 2026 4:33:23
82% малых бизнесов тонут как раз из-за проблем с денежными потоками (по данным исследований U.S. Bank, 2020). Как предприниматели попадают в кассовые разрывы и что делать в таких ситуациях, разберем в этой статье....
13 09 2026 20:53:33
Раскрутить телеграм-канал с нуля до тысячи — реально. Раскрываем пошаговый алгоритм и даем рекомендации для SMM-специалистов....
12 09 2026 19:48:30
Как снизить цену за привлечение клиента на 50%, развивая только кампании для пользователей десктопов....
11 09 2026 6:24:30
Ещё один проект, который продвигался во время карантина....
10 09 2026 1:29:22
XML-фид представляет собой файл с кодом на языке XML, ссылку на который используют в различных сервисах...
09 09 2026 23:41:47
Почему сайт упал в выдаче и какой апдейт алгоритма поисковика на это повлиял...
08 09 2026 5:47:25
Отличная работа SEO-специалистов прошлого, породила касту PPC-специалистов настоящего, которые все еще ориентируются на публикации из 2017, ведь они все еще в ТОПе выдачи....
07 09 2026 8:35:55
Быстрые ссылки и другие советы на тему того, как эффективно работать в Директ Коммaндере....
06 09 2026 10:12:46
Проседание русскоязычной версии и риск потери трафика из-за дубля страниц — вот чего опасаются при внедрении украинской версии по умолчанию. Как этого избежать, читайте дальше....
05 09 2026 8:30:45
Стоит установить и освоить Google Tag Manager для расширения представления сайта в выдаче...
04 09 2026 20:45:21
Идеи, кейсы и советы от экспертов. Читайте и находите что-то для продвижения своего бизнеса. Нетривиальные идеи от признанных экспертов-пpaктиков! Рекомендуем каждому, что развивает или планирует свой бизнес в интернете!...
03 09 2026 10:30:34
Как посты и ролики Reels становятся первыми в ленте, сториз, попадают в рекомендации. Instagram впервые напрямую рассказали о том, как оценивают контент....
02 09 2026 1:34:24
Подкаст — это аудиозапись в повествовательном, музыкальном, юмористическом формате. Создается с целью рекламы, увеличения потока посетителей на сайт и роста почитателей определенного продукта...
01 09 2026 13:26:55
Как Bigl.ua внедрили AMP и остались очень довольны результатом....
31 08 2026 16:41:29
Проделанные шаги и полученные результаты при раскрутке магазина великов в интернете...
30 08 2026 10:55:52
Информация для бизнесменов, интернет-маркетологов и всех, кто интересуется продвижением бизнеса в интернете....
29 08 2026 14:44:10
Пишите стоимость товара под постами. Но это не универсальный совет. Если ваша ниша с длинным циклом продаж, можно сделать исключение. Что ещё нужно знать про ответ в директ? Узнать!...
28 08 2026 10:32:42
Список курсов, книг, каналов и пабликов для работы с данными...
27 08 2026 3:15:47
Как пользователи и разработчики приложений живут без Google Play? Авторская колонка....
26 08 2026 23:15:10
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::