Как обойти блокировку 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
Надеюсь, пост поможет вам спокойно работать в привычных сервисах, невзирая на внешние обстоятельства.
Комментарии:
Исправляем ошибки в рекламных кампаниях, аналитике и бюджете...
23 07 2026 3:54:12
Проверьте свою логику, находчивость и креативность...
22 07 2026 11:39:20
Профессор психологии Йельского университета разработала курс по обретению счастья. Его прошли уже 3,5 млн человек...
21 07 2026 9:46:33
Важно: понимания стоимость конверсии и необходимое количество конверсий, вы можете прогнозировать, сколько денег на рекламу нужно выделить. Вот почему вам может быть полезно это исследование. Читать....
20 07 2026 10:51:30
Подружим GTM и Метрику с минимальным вовлечением программиста....
19 07 2026 0:54:38
Measurement Protocol — метод передачи данных о продажах или любых других взаимодействиях с покупателями на сервера Google ***ytics пpaктически из любого источника: внутренней CRM-системы, базы данных и даже платежного терминала...
18 07 2026 15:25:11
Алексей Селезнев проанализировал 29 млн кликов, и в этой статье вы прочитаете, как дорого обходятся рекламодателям клики в Google Ads....
17 07 2026 20:30:41
Проверяем, есть ли разница в ранжировании при наличии/отсутствии этих слов в метаданных. Эксперимент....
16 07 2026 8:42:49
Какой эффективный способ использовать для проверки бизнес-возможностей новых проектов ecommerce?...
15 07 2026 0:45:50
Перед внедрением ремаркетинга следует хорошенько поработать над составлением базовых портретов аудитории сайта...
14 07 2026 1:25:42
Самопомощь по тревоге во время карантина и экономического кризиса...
13 07 2026 6:41:49
Наш обзор кинофильма «Социальная сеть» про Facebook и Марка Цукерберга....
12 07 2026 22:48:15
После того, как мы разобрали виды мобильных версий сайтов, их плюсы и минусы — стоит поговорить о сервисах, которые облегчают аудит....
11 07 2026 11:15:50
Ошибка на странице 404 может выглядеть креативно. Страница не найдена и не может быть найдена, потому что она в розыске, утеряна, украдена ниндзей, путь заснежен и дороги дальше нет, а принцесса находится в другом замке. О чем это?...
10 07 2026 1:29:44
Снимать скрин нужно красиво и логично, вне зависимости от того, кому вы его покажете: начальнику, другу или многотысячной аудитории блога...
09 07 2026 4:22:43
Сайту нужны внешние ссылки на сторонних ресурсах. Они могут повлиять на ранжирование вашего ресурса и трафик, а один из методов их получить — аутрич....
08 07 2026 18:12:22
Как использовать игровые механики для вовлечения аудитории....
07 07 2026 6:56:20
Как жить с налогом на Google, Facebook и другие международные сервисы — объясняем детали....
06 07 2026 1:58:12
Как узнавать эффективность страницы мобильного приложения в Play Маркете? Учимся работать в Google Play Developers Console....
05 07 2026 14:49:10
Как передавать данные пpaктически о каждом «шаге» пользователя на сайте...
04 07 2026 4:13:55
Какие форматы видеорекламы логичнее купить для создания спроса на новую продукцию? Выясняем на примере кейса бренда Yves Rocher...
03 07 2026 21:15:50
Алгоритм технической подготовки IP-адреса к массовым рассылкам...
02 07 2026 0:16:53
Краткая инструкция по работе с обратной связью: как правильно просить и получать отзывы. Они напрямую влияют на бизнес, увеличивают конверсию и выгодно выделяют вас на фоне конкурентов. Как это использовать? Читайте дальше!...
01 07 2026 20:15:17
Пpaктика в режиме «рейтинг онлайн». Новинка Google Рекламы — отчет «Статистика аукционов»....
30 06 2026 21:33:45
Можно ли повысить оценку качества целевой страницы , если проставить конечные URL на уровне ключевого слова? Результаты исследования....
29 06 2026 8:24:48
Facebook buttons. Пора поделиться самым волнующим вопросом 2011-го года...
28 06 2026 23:16:50
Устраняем причины, по которым пользователи покидают сайт без покупки....
27 06 2026 6:41:13
Все дело в формате объявлений Instant Experience с подключенным каталогом товаров. Нет, не только в нем. Узнать больше!...
26 06 2026 13:45:49
История свидания двух ботов как иллюстрация развития искусственного интеллекта...
25 06 2026 19:33:33
Современные платформы телефонии и коллтрекинга — это не только про звонки. С Ringostat вы узнаете, откуда пришел клиент, как менеджер ему ответил и какая реклама «принесла» деньги....
24 06 2026 3:39:49
Facebook раскрывает алгоритм формирования новостной ленты...
23 06 2026 18:42:50
Проседание русскоязычной версии и риск потери трафика из-за дубля страниц — вот чего опасаются при внедрении украинской версии по умолчанию. Как этого избежать, читайте дальше....
22 06 2026 7:38:22
Киев, Одесса, Харьков, Днепр и другие города — в офис и обратно IT-специалисты добираются от 10 минут до более чем полутора часа. В дороге они слушают музыку, подкасты, читают книги. Узнать больше!...
21 06 2026 13:28:24
Как улучшить видимость сайта после оптимизаторов-староверов — кейс в тематике «световое и звуковое оборудование»....
20 06 2026 16:52:59
Недавно у нас появился свой генератор мемов :) Во многих компаниях смешные слова и фразы стараются запомнить и передать следующим поколениям сотрудников. В Netpeak же долго работали над секретным проектом и... Читайте!...
19 06 2026 3:51:23
Мы хотим купить комaнду с компетенциями в сфере медиабаинга, чтобы объединить силы для развития онлайн-рынка...
18 06 2026 17:10:31
Про мобильный дизайн. С красивой и понятной презентацией внутри....
17 06 2026 23:39:30
Офис Netpeak в Харькове официально открыт! В этом посте, вместо игры на фанфарах, мы на собственном примере рассмотрим, что нужно для создания регионального отделения в разгар кризиса....
16 06 2026 8:49:31
Полтора года работы и 32 тысячи привлеченных подписчиков. Рассказываем о плюсах и минусах продвижения телеграм-канала....
15 06 2026 14:15:20
Прогнозирование с помощью «Планировщика ключевых слов»....
14 06 2026 18:40:42
Наши сотрудники смогли составить разбор непростых вещей, дать им определение и рассказать о них простым языком....
13 06 2026 15:11:38
Правила, законы, платное и бесплатное продвижение в Telegram...
12 06 2026 4:46:46
Сергeй Бахарь неустанно исследует Google Рекламу и рассказывает о новинках нашим читателям....
11 06 2026 9:29:47
Отличный кейс Ольги Костовой. Увеличивая бюджет на рекламу вдвое, вы начинаете заpaбатывать не вдвое больше, а в 2.5, 3 и так далее раз больше. На примере кейса показываем, как это происходит. Читать дальше....
10 06 2026 20:36:15
О том, как работают, празднуют, танцуют и в какой корпоративной культуре живут сотрудники корпорации Google. Этот пост развеет кое-какие мифы....
09 06 2026 21:42:43
Обзор полезных сервисов и программ, которые увеличат эффективность работы из дома и улучшат организацию бизнес-комaнды...
08 06 2026 18:44:42
Делимся фишками, которые облегчат работу как новичкам, так и специалистам....
07 06 2026 15:52:24
Статья Оливера Гарднера посвящена различным аспектам оптимизации посадочных страниц: дизайну, контексту, созданию кнопки действия...
06 06 2026 13:40:50
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
05 06 2026 8:44:45
При работе с рекламным аккаунтом приходится вносить много однотипных изменений. Рассказываем, как сделать это быстро....
04 06 2026 5:28:45
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::