feat: Robotex landing on robotex.sokolab.xyz and announcement post
- projects section: standalone landing template and styles, served on a subdomain by the ingress Caddy (project) snippet - Robotex landing in RU/EN, links to Redmine forum/issues - blog post: Robotex is now a free service Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bb26176277
commit
e9748e1949
8 files changed
+552
No files matched your search
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: "Robotex"
|
||||
tagline: "Браузер для ваших ботов по API"
|
||||
description: "Robotex проходит анти-бот защиту, выполняет сценарий на странице и отдает боту куки. Дальше бот работает обычными HTTP запросами."
|
||||
domain: "https://robotex.sokolab.xyz/"
|
||||
badge: "Бесплатно · ранний доступ"
|
||||
post: "/blog/robotex-browser-automation-api"
|
||||
postLabel: "Как устроен Robotex"
|
||||
build:
|
||||
list: never
|
||||
sitemap:
|
||||
disable: true
|
||||
|
||||
nav:
|
||||
- { label: "Возможности", href: "#features" }
|
||||
- { label: "Как работает", href: "#how" }
|
||||
- { label: "Сообщество", href: "#community" }
|
||||
|
||||
cta:
|
||||
- { label: "Запросить доступ", href: "https://redmine.sokolab.xyz/account/register", primary: true }
|
||||
- { label: "Как это работает", href: "#how" }
|
||||
|
||||
problem:
|
||||
title: "Зачем это нужно"
|
||||
lead: "Каждый бот под сайт рано или поздно упирается в одну из трех проблем:"
|
||||
items:
|
||||
- "капча"
|
||||
- "анти-бот защита"
|
||||
- "сложный JS, который нужно отрендерить, чтобы отправить форму"
|
||||
text: "Паук на сырых HTTP запросах тут бессилен, нужен настоящий браузер. Но браузер тяжелый, его нужно прятать от детекта и держать рядом с ботом. Robotex берет эту работу на себя: браузер включается только там, где без него никак."
|
||||
|
||||
features:
|
||||
title: "Возможности"
|
||||
items:
|
||||
- title: "Сценарии"
|
||||
text: "Не просто открыть страницу. Заполнить форму, кликнуть, навести мышь, дождаться элемента, забрать кусок HTML."
|
||||
- title: "Анти-бот страницы"
|
||||
text: "Сам находит проверку Cloudflare до и во время сценария и проходит ее. Если она переросла в капчу с картинками, отправляет в сервис распознавания."
|
||||
- title: "Капча"
|
||||
text: "Шаг `captcha` в сценарии решает hCaptcha и другие капчи через 2captcha до отправки формы."
|
||||
- title: "Профили"
|
||||
text: "Куки, local storage и отпечаток браузера живут в одном профиле. Локаль и часовой пояс подбираются под гео прокси. Для сайта это все тот же пользователь."
|
||||
- title: "Настоящий Chrome"
|
||||
text: "Chrome под управлением Patchright, без утечек CDP, по которым анти-боты узнают автоматизацию."
|
||||
- title: "Любой язык"
|
||||
text: "Это сервис, а не библиотека. Боту нужен только HTTP клиент, на чем он написан, неважно."
|
||||
|
||||
how:
|
||||
title: "Как это работает"
|
||||
steps:
|
||||
- "Бот отправляет в `POST /v1/solve` адрес, сценарий действий и свой прокси."
|
||||
- "Robotex открывает страницу, проходит проверки и выполняет сценарий. Профиль браузера сохраняется и возвращается в куке `session_id`."
|
||||
- "Бот получает куки и User-Agent и дальше ходит по сайту сам, **через тот же прокси**. Понадобится браузер снова, передаст `session_id` и продолжит в том же профиле."
|
||||
code:
|
||||
- caption: "Запрос"
|
||||
body: |
|
||||
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"
|
||||
}
|
||||
- caption: "Ответ"
|
||||
body: |
|
||||
{
|
||||
"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}
|
||||
]
|
||||
}
|
||||
|
||||
limits:
|
||||
title: "Честно о текущем состоянии"
|
||||
items:
|
||||
- "**Это ранний MVP.** Доступ выдаю вручную, API может меняться."
|
||||
- "**Бесплатно.** Платить нужно только за свои прокси и, если нужна, капчу в 2captcha."
|
||||
- "Прокси решает многое: на грязном IP не поможет никакой отпечаток."
|
||||
- "Turnstile проходит не на каждом сайте, над стабильностью работаю."
|
||||
|
||||
community:
|
||||
title: "Сообщество"
|
||||
lead: "Вопросы, идеи и баги принимаются в Redmine. Регистрация с ручной активацией: оставьте заявку, и я ее подтвержу."
|
||||
links:
|
||||
- { title: "Форум", text: "Вопросы, идеи и обсуждение сценариев.", href: "https://redmine.sokolab.xyz/projects/robotex/boards" }
|
||||
- { title: "Баги и пожелания", text: "Что-то не работает или не хватает функции.", href: "https://redmine.sokolab.xyz/projects/robotex/issues" }
|
||||
- { title: "Telegram", text: "Написать мне напрямую.", href: "https://t.me/xs0k0lx" }
|
||||
- { title: "Исходники", text: "Код сервиса в моей Gitea.", href: "https://git.sokolab.xyz/s0k0l/robotex" }
|
||||
|
||||
footer: "Используйте Robotex только на сайтах, где у вас есть на это право."
|
||||
---
|
||||
Reference in new issue
Block a user