build: лимиты ресурсов, прокси и нагрузочный тест; docs: API
- docker-compose: cpus/mem_limit через API_CPUS/API_MEM_LIMIT, прокси gost в профиле loadtest - tests/loadtest.py: параллельные запросы к /v1/solve + пики docker stats - docs/API.md: справочник по запросу, действиям, ответу и сессиям - docs/Deployment.md: результаты замеров и правило подбора BROWSER_SLOTS Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
df108dae3f
commit
a319b81d8b
6 files changed
+330
-105
No files matched your search
+4
-55
@@ -2,59 +2,8 @@
|
||||
|
||||
Сервис позволяет отработать на странице JS и продолжить парсинг. Полезно для ботов, которым нужно авторизоваться на сайте или пройти капчу, там где требуется рендеринг JS.
|
||||
|
||||
### Запрос и ответ
|
||||
Клиент присылает URL, свой прокси и список действий. Сервис открывает страницу в настоящем Chrome, проходит
|
||||
антибот (Cloudflare Turnstile, reCAPTCHA), выполняет действия и возвращает cookies (включая `cf_clearance`),
|
||||
User-Agent и, по запросу, HTML. С этими cookies и UA клиент продолжает парсинг своим HTTP-клиентом.
|
||||
|
||||
**Параметры запроса**:
|
||||
|
||||
- URL - обязательно нужно указать с каким сайтом будем работать
|
||||
- proxy - обязательно нужно задать прокси, система не станет палить свою инфраструктуру
|
||||
- time_zone - временная зона
|
||||
- locale - языковая настройка
|
||||
- user_agent - User-Agent браузера Chrome, если не передать будет использован свой
|
||||
- screen - размер окна, по умолчанию: 1280х920
|
||||
- timeout - общий таймаут выполнения запроса, по умолчанию: 120
|
||||
- captcha - токен сервиса распознавания, если требуется решить капчу на странице
|
||||
- actions - перечисление списка действий, которые на странице нужно выполнить
|
||||
|
||||
Настройка actions:
|
||||
|
||||
- type - тип запроса из перечисления
|
||||
- selector - css селектор
|
||||
- value - значение для вставки
|
||||
- timeout - время выполнения или ожидания
|
||||
|
||||
Доступные типы actions:
|
||||
|
||||
- wait_for - ожидание появления элемента
|
||||
- selector
|
||||
- timeout
|
||||
- mouse_move - перемещение курсора
|
||||
- selector
|
||||
- click - клик
|
||||
- selector - если не передан, то клик в текущей позиции
|
||||
- fill - заполняет поля
|
||||
- selector
|
||||
- value - значение будет впечатано
|
||||
|
||||
Будет добавлено:
|
||||
|
||||
1. `{"type": "typing", "value": "user@example.com"},` - набор текста
|
||||
2. `{"type": "innerhtml", "selector": "#email"},` - получить контент
|
||||
3. `{"type": "script", "source": "console.log(\"hello world\")"},` - выполнить скрипт
|
||||
|
||||
**Ответ**:
|
||||
|
||||
- URL - итоговый урл из адресной строки на момент окончания работы
|
||||
- user_agent - заголовок браузера
|
||||
- screen - размер окна
|
||||
- exc_time = время выполнения
|
||||
- actions_result - отчет о выполненых действиях
|
||||
- ok - выполнился ли этот запрос успешно
|
||||
- error - для сообщения об ошибке
|
||||
|
||||
Результат отработки actions
|
||||
|
||||
- type - тип события
|
||||
- ok - успешность события
|
||||
- error - появляется, когда событие сработало с ошибкой
|
||||
- message - появляется, для команд возвращающих результат
|
||||
Описание запроса и ответа — [API.md](API.md), развёртывание — [Deployment.md](Deployment.md).
|
||||
Reference in new issue
Block a user