APIБазова Автоматизація Dolphin {anty}

Базова Автоматизація Dolphin {anty}

Загальні відомості 📜

Браузерні профілі на базі рушія Anty підтримують запуск з увімкненням DevTools Protocol. Це дозволяє підключатися до профілю через згенерований при старті порт і автоматизувати роботу браузера за допомогою інструментів, як-от Puppeteer, Playwright, Selenium та інших.

Таким чином, базова автоматизація включає три основні кроки:

  1. Запустити профіль через API з увімкненим DevTools Protocol
  2. Підключитися до порту профілю за допомогою інструмента автоматизації (Puppeteer, Playwright, Selenium, Postman тощо)
  3. Запустити свій власний скрипт автоматизації через відкрите з'єднання

ℹ️ Для роботи з автоматизацією Dolphin{anty} — він має бути запущений і авторизований. Авторизуватися можна як за допомогою логіна й пароля, так і програмним запитом за допомогою токена.

Створити токен можна в особистому кабінеті.

Параметри запиту для авторизації з використанням токена:

Щоб не виникала помилка 401, обов'язково треба відправляти запит Метод: POST URL: http://localhost:3001/v1.0/auth/login-with-token Заголовок: Content-Type: application/json Тіло запиту:

{ "token": "API_TOKEN"}

У будь-якому місці, де є API_TOKEN — треба замінити на свій токен (апі ключ) з особистого кабінету на нашому сайті.

ChromeDriver ⬇️

Це міст між скриптом (наприклад, Selenium) і браузером Dolphin{anty}. Стандартний драйвер видає автоматизацію, тому ми випускаємо власний модифікований драйвер для кожної версії браузера.

Завантажити ChromeDriver

Приклади запиту на авторизацію ⚙️

✅ При вдалому виконанні відображатиметься відповідь:

{"success": true}

Крок 1. Старт профілю через API ▶️

URL запиту

Для старту браузерного профілю через API необхідно надіслати GET-запит:

​http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/start?automation=1

Також профіль можна запустити в headless mode:

​http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/start?automation=1&headless=1​
  1. PROFILE_ID — ID браузерного профілю. Дізнатися ID профілю можна шляхом запиту списку профілів через API або через застосунок Dolphin{аnty} у правому верхньому куті при редагуванні профілю
  2. automation=1 — обов'язковий параметр для автоматизації

Приклад запуску за допомогою Postman через відправлення запиту:

⚠️ Важливі моменти

  1. Локальний API працює тільки при запущеному Dolphin{anty}
  2. Запити треба надсилати з ПК, на якому запущений браузер
  3. Наразі локальний API працює завжди на 3001 порту, якщо 3001 порт зайнятий — то займається інший. Його можна подивитися у вікні Здоров'я / Health, яке відкривається в нижньому рядку Dolphin{anty}
  4. На безкоштовному тарифі не працюватиме експорт та імпорт куки через API-запит через те, що відсутня синхронізація профілів у хмару
  5. Обмеження запитів (ліміт швидкості): 1500 запитів за хвилину

Відповідь API ✅

Якщо профіль було запущено успішно, то у відповідь прийде приблизно така структура (значення полів port і wsEndpoint можуть бути різними):

{
 "success": true,
  "automation": {
    "port": 50568,
    "wsEndpoint": "/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969" }}​

Крок 2. Підключення до профілю 🔌

Puppeteer

Puppeteer — популярна бібліотека від Google для автоматизації й тестування інтерфейсів у браузері. Початково створена для автозапуску браузера й перевірки UI-елементів, але дозволяє виконувати майже будь-які дії на вебсторінках, що робить її універсальною для автоматизації. Потребує знань JavaScript/Node.js.

Playwright

Playwright vs Selenium: What are the Main Differences and Which is Better?  - Applitools
Playwright vs Selenium: What are the Main Differences and Which is Better? - Applitools

По суті кажучи, Playwright — свіжіший і сучасніший аналог Puppeteer. Розробляється Microsoft. Має схожий функціонал і синтаксис.

Selenium

Підключення Selenium до запущеного браузера описано в цій статті. Варто згадати, що Selenium використовує стандартний ChromeDriver, але сайти можуть розпізнати автоматизацію, тому рекомендуємо використовувати наш ChromeDriver — завантажити його й указати шлях у коді, щоб сховати роботу Selenium.

Крок 3. Зупинка профілю через API ⛔️

Для зупинки браузерного профілю через API необхідно надіслати GET-запит:

 http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/stop