Все коллекции
Dolphin Anty
API
Базовая Автоматизация Dolphin {anty}
Базовая Автоматизация Dolphin {anty}
Обновлено больше недели назад

📜Общие сведения

Браузерные профили, основанные на движке Anty, можно запустить со включенным DevTools Protocol.

Это означает, что после запуска профиля, к нему можно подключиться через сгенерированный при старте порт и получить возможность к автоматизации браузера с помощью таких инструментов, как Puppeteer, Playwright, Selenium и пр. Подробнее о DevTools protocol.

Таким образом базовая автоматизация состоит из трех шагов:

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 - заменить на токен

Пример кода JS

Пример кода Python

Пример кода Java

Пример кода GO

При удачном выполнении кода вы получите ответ:

{"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. Локальный API работает только при запущенной программе Dolphin Anty

  2. Данный запрос нужно посылать с компьютера, на котором запущен Dolphin Anty

  3. На данный момент локальный API работает всегда на 3001 порту, если 3001 порт занят - то занимается другой. Его можно посмотреть в окне Здоровья / Health в нижней строке Dolphin Anty

  4. На бесплатном тарифе не будет работать эскпорт и импорт куки через API запрос из-за того что отсутствует синхронизации профилей в облако

В дальнейшем планируется реализовать возможность запуска профилей по API удаленно

  1. PROFILE_ID - ID браузерного профиля. Узнать ID профиля можно путем запроса списка профилей через Remote API

  2. automation=1 - обязательный параметр

Ответ API

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

{

"success": true,

"automation": {

"port": 50568,

"wsEndpoint": "/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969"

}

}

  • Или при помощи консоли:

🔌Шаг 2. Подключение к профилю

Puppeteer

Browser Automation with Puppeteer - SitePen

Puppeteer - одна из наиболее распространенных библиотек для тестирования пользовательских интерфейсов в браузере. Разработкой и поддержкой данной библиотеки занимаются ребята из Google.

Изначальное предназначения инструмента - запустить браузер и пройтись автоматически по элементам интерфейса, чтобы проверить, все ли в порядке.

Побочный функционал библиотеки - практически неограниченные возможности к совершению почти любых действий на веб-страницах.

Требует знания стека JavaScript/Node.js

const puppeteer = require('puppeteer-core');

(async () => {

// СЮДА ВАШ port

const port = 50568;

// СЮДА ВАШ wsEndpoint

const wsEndpoint = '/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969';

// НЕПОСРЕДСТВЕННО ПОДКЛЮЧЕНИЕ

const browser = await puppeteer.connect({

browserWSEndpoint: `ws://127.0.0.1:${port}${wsEndpoint}`

});

// С ЭТОГО МОМЕНТ АВТОМАТИЗИРУЕМ, ЧТО ХОТИМ

// НАПРИМЕР, СНИМАЕМ СКРИНШОТ С ГУГЛА

const page = await browser.newPage();

await page.goto('https://google.com');

await page.screenshot({ path: 'google.png' });

await browser.close();

})();

Playwright

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

По сути говоря, Playwright - более свежий и современный аналог Puppeteer. Разрабатывается Microsoft. Имеет схожий функционал и синтаксис.

const { chromium } = require('playwright');

(async () => {

// СЮДА ВАШ port

const port = 50568;

// СЮДА ВАШ wsEndpoint

const wsEndpoint = '/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969';

// НЕПОСРЕДСТВЕННО ПОДКЛЮЧЕНИЕ

const browser = await chromium.connectOverCDP(`ws://127.0.0.1:${port}${wsEndpoint}`);

// С ЭТОГО МОМЕНТ АВТОМАТИЗИРУЕМ, ЧТО ХОТИМ

// НАПРИМЕР, СНИМАЕМ СКРИНШОТ С ГУГЛА

const page = await browser.contexts()[0].newPage();

await page.goto('https://google.com');

await page.screenshot({path: 'google.png'});

await browser.close();

})();

Selenium

Selenium - Testautomatisierung.org

Подключение Selenium к уже запущенному инстансу браузера описано в этой статье.

Selenium использует для подключения к Google Chrome стандартную утилиту от Google -- Google ChromeDriver. К сожалению, при её использовании некоторые сайты могут задетектить наличие браузерной автоматизации. Мы сделали свой ChromeDriver! Вы можете скачать его здесь. Вам необходимо заменить путь в вашем коде на нашу версию ChromeDriver - и сайты не смогут узнать, что вы используете Selenium. Если вы желаете подключиться к нужному вам расширению, то у вас это не получиться так как в нашем браузере это не доступно

:octagonal_sign:

Шаг 3. Остановка профиля через API

Для остановки браузерного профиля через API необходимо послать GET-запрос по адресу http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/stop

Нашли ответ на свой вопрос?