Якщо ви з України і до 16 травня використовували API Яндекса, Mail.Ru і ВКонтакте, то після цієї дати, очевидно, зіткнулися з певними труднощами. У цій статті я розповім, як обійти блокування API заборонених сервісів в скриптах R і продовжувати використовувати пакети ryandexdirect. rvkstat або rmytarget.
Обхід блокування в напівавтоматичному режимі
2. Виберіть у фільтрі тип проксі, що підтримує HTTPS.
3. Сформуйте список доступних проксі-серверів.
5. Наприклад, візьмемо американський сервер, який з третього рядка списку IP 104.37.212.5, порт 3128. У код R необхідно направити інтернет-з'єднання через проксі-сервер, для цього додаємо в код рядок:
6. Пишемо код звернення до API (приклад - трохи далі).
7. Додаємо рядок для відключення інтернет-з'єднання від проксі-сервера:
8. Якщо проксі-сервер вимагає проходження аутентифікації, можете вказати ім'я користувача і пароль:
9. Переконайтеся, що налаштування з'єднання - введіть в R консоль команду:
У відповідь на цю команду в консолі з'явиться запис:
Це означає, що з'єднання через проксі встановлено успішно.
Звернення до API Яндекс.Директ через проксі-сервер
Перед використанням наведеного нижче коду необхідно встановити пакети devtools і ryandexditrect:
Для отримання API токена необхідно встановити одне з розширень для браузера, який дозволяє обійти блокування сайтів. Можете встановити Proxy for Chrome. наприклад.
Тепер можна використовувати наступний код на мові R, підставляючи в аргументи функцій свої значення:
Як автоматизувати отримання IP і порт проксі-сервера?
По-перше, необхідно встановити пакети RCurl і jsonlite:
Як ви розумієте, все безкоштовне працює не так стабільно, як хотілося б, тому в якості недорогий але стабільно працюючої і значно більш гнучкою в налаштуваннях альтернативи рекомендую купити доступ до API у HideMy.name. Запитайте доступ до API в цій формі.
Актуальну вартість доступу до API можна дізнатися за цим посиланням.
Код з попереднього пункту - робочий, він корисний для розуміння, як використовувати будь-API, за допомогою якого можна отримати IP і порт проксі-сервера.
На даний момент пакет містить всього одну функцію getProxy. Функція використовує два безкоштовних API-сервісу: gimmeproxy.com і getproxylist.com, звертаючись до них за IP і портом публічно доступних і безкоштовних проксі-серверів.
Установка пакета getProxy
Встановіть пакет з репозиторію GitHub:
Аргументи функції getProxy
Приклад використання функції getProxy
Якщо необхідно відключитися від проксі-сервера, досить передати в аргумент action значення stop.
Приклад звернення до API Яндекс.Директ через проксі-сервер за допомогою пакета getProxy
Перед запуском наведеного нижче коду у вас вже повинні бути встановлені пакети ryandexdirect і getProxy.
Цей код при кожному запуску буде автоматично запитувати настройки доступного проксі-сервера і застосовувати їх.
Для обходу блокування доступу до API в ваші скрипти на мові R досить додати всього два рядки і використовувати функції Sys.setenv і Sys.unsetenv.
Трохи дописавши скрипт, ви зможете безперешкодно отримувати дані з API Яндекс.Директ, Яндекс.Метрики, ВКонтакте і Mail.ru. У більшості випадків буде достатньо безкоштовних API-сервісів, для роботи з якими я написав пакет getProxy.
Читайте також про методи використання мови R в інтернет-маркетингу.