diff --git a/README.md b/README.md index 912c7cd..2d2a01b 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,8 @@ Response: ```json { - "status": "ok", + "ok": false, + "error": "action_error", "html": "...", "cookies": [ { @@ -104,10 +105,10 @@ Response: }, { "type": "wait_for", - "ok": true + "ok": false, + "error": "Element not located" } - ], - "error": null + ] } ``` @@ -124,16 +125,16 @@ Fill команда включает 3 действия Deliberately out of scope for v1: -- Second engine (Patchright/Chromium) for targets where the Firefox fingerprint doesn't fit - Job queue (Redis/RabbitMQ) + multiple worker VPS for horizontal scaling - Real billing/usage plans beyond a flat API-key check - Broader action vocabulary beyond fill/click/wait_for +- Second engine (Patchright/Chromium) for targets where the Firefox fingerprint doesn't fit ## Local development ```bash python -m venv .venv source .venv/bin/activate -pip install -r requirements.txt +make sync-offline uvicorn app.main:app --reload ``` diff --git a/docs/Introduction.md b/docs/Introduction.md new file mode 100644 index 0000000..27858aa --- /dev/null +++ b/docs/Introduction.md @@ -0,0 +1,58 @@ +# WebRobo API + +Сервис позволяет отработать на странице JS и продолжить парсинг. Полезно для ботов, которым нужно авторизоваться на сайте или пройти капчу, там где требуется рендеринг JS. + +### Запрос и ответ + +**Параметры запроса**: + +- URL - обязательно нужно указать с каким сайтом будем работать +- proxy - обязательно нужно задать прокси, система не станет палить свою инфраструктуру +- user_agent - заголовок браузера, если не передать будет использован свой +- 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 - появляется, для команд возвращающих результат