Бесплатно · ранний доступ

Браузер для ваших ботов по API

Robotex проходит анти-бот защиту, выполняет сценарий на странице и отдает боту куки. Дальше бот работает обычными HTTP запросами.

Зачем это нужно

Каждый бот под сайт рано или поздно упирается в одну из трех проблем:

  1. капча
  2. анти-бот защита
  3. сложный JS, который нужно отрендерить, чтобы отправить форму

Паук на сырых HTTP запросах тут бессилен, нужен настоящий браузер. Но браузер тяжелый, его нужно прятать от детекта и держать рядом с ботом. Robotex берет эту работу на себя: браузер включается только там, где без него никак.

Возможности

Сценарии

Не просто открыть страницу. Заполнить форму, кликнуть, навести мышь, дождаться элемента, забрать кусок HTML.

Анти-бот страницы

Сам находит проверку Cloudflare до и во время сценария и проходит ее. Если она переросла в капчу с картинками, отправляет в сервис распознавания.

Капча

Шаг captcha в сценарии решает hCaptcha и другие капчи через 2captcha до отправки формы.

Профили

Куки, local storage и отпечаток браузера живут в одном профиле. Локаль и часовой пояс подбираются под гео прокси. Для сайта это все тот же пользователь.

Настоящий Chrome

Chrome под управлением Patchright, без утечек CDP, по которым анти-боты узнают автоматизацию.

Любой язык

Это сервис, а не библиотека. Боту нужен только HTTP клиент, на чем он написан, неважно.

Как это работает

  1. Бот отправляет в POST /v1/solve адрес, сценарий действий и свой прокси.
  2. Robotex открывает страницу, проходит проверки и выполняет сценарий. Профиль браузера сохраняется и возвращается в куке session_id.
  3. Бот получает куки и User-Agent и дальше ходит по сайту сам, через тот же прокси. Понадобится браузер снова, передаст session_id и продолжит в том же профиле.
Запрос
POST /v1/solve
X-API-Key: <key>

{
  "url": "https://example.com/login",
  "actions": [
    {"type": "fill", "selector": "#email", "value": "user@example.com"},
    {"type": "fill", "selector": "#password", "value": "..."},
    {"type": "click", "selector": "#submit"},
    {"type": "wait_for", "selector": ".dashboard", "timeout": 30}
  ],
  "proxy": "socks5://user:pass@host:port"
}
Ответ
{
  "status": "ok",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
  "cookies": [
    {"name": "sessionid", "value": "...", "domain": ".example.com"}
  ],
  "actions": [
    {"type": "fill", "ok": true},
    {"type": "fill", "ok": true},
    {"type": "click", "ok": true},
    {"type": "wait_for", "ok": true}
  ]
}

Честно о текущем состоянии

  • Это ранний MVP. Доступ выдаю вручную, API может меняться.
  • Бесплатно. Платить нужно только за свои прокси и, если нужна, капчу в 2captcha.
  • Прокси решает многое: на грязном IP не поможет никакой отпечаток.
  • Turnstile проходит не на каждом сайте, над стабильностью работаю.

Сообщество

Вопросы, идеи и баги принимаются в Redmine. Регистрация с ручной активацией: оставьте заявку, и я ее подтвержу.